一、基礎配置
1、設置系統語言
進入安裝界面后,默認為English
,建議使用English
,可以避免因中文字符亂碼引起的未知問題。
2、設置系統更新狀態
系統默認選中的是Update to the new installer
,如果使用默認選項,系統在安裝完成后將會升級到當前最新版本,我們需要選擇Continue without updating
,系統安裝完成后依然是18.04版本系統。
3、設置鍵盤布局
我們使用系統默認的鍵盤布局和格式,不需要修改任何參數。
二、網絡配置
1、使用聚合網卡
使用聚合網卡和提高網絡的高可用或者是提高網絡帶寬。
我們選擇Create bonmd
創建聚合網卡。
系統默認命名規則為bond前綴 + 數字編號,由於我們這是我們創建的第一個聚合網卡,因此系統默認命名為bond0
,我們直接使用系統的默認命名即可;
在Devices
中選擇需要加入到聚合組的物理網卡,具體網卡名稱可以在上一步中通過插拔網線的方式確定網卡名稱。
在Bond mode
中選擇聚合模式,rr
,xor
,tlb
,alb
這四種聚合模式均為負載均衡模式;active-backup
為主備模式,只有一個網卡在工作,當工作網卡故障后切換到備用網卡; 802.3ad
為動態鏈路聚合,需要交換機支持lacp,該種模式可以提高網絡速率,理論值為網卡速率 * 網卡數量
,當其中一個網卡故障,其他網卡自動接管所有流量的傳輸。
創建bond0,選擇ens33
和ens38
,聚合模式選擇802.3ad
,其他參數使用系統默認值。
創建完bond0后編輯聚合網卡,配置ip地址等信息。
進入到bond0后method
選擇manual(靜態地址)
,然后在下面填寫規划好的子網,地址,網關,DNS服務器,搜索域(可以不配置)。
2、bond的七種模式介紹
2.1、mode=0(balance-rr)(平衡掄循環策略)
鏈路負載均衡,增加帶寬,支持容錯,一條鏈路故障會自動切換正常鏈路。交換機需要配置聚合口,思科叫port channel。
特點:
傳輸數據包順序是依次傳輸(即:第1個包走eth0,下一個包就走eth1….一直循環下去,直到最后一個傳輸完),此模式提供負載平衡和容錯能力;但是我們知道如果一個連接 或者會話的數據包從不同的接口發出的話,中途再經過不同的鏈路,在客戶端很有可能會出現數據包無序到達的問題,而無序到達的數據包需要重新要求被發送,這樣網絡的吞吐量就會下降
2.2、mode=1(active-backup)(主-備份策略)
這個是主備模式,只有一塊網卡是active,另一塊是備用的standby,所有流量都在active鏈路上處理,交換機配置的是捆綁的話將不能工作,因為交換機往兩塊網卡發包,有一半包是丟棄的。
特點:
只有一個設備處於活動狀態,當一個宕掉另一個馬上由備份轉換為主設備。mac地址是外部可見得,從外面看來,bond的MAC地址是唯一的,以避免switch(交換機)發生混亂。此模式只提供了容錯能力;由此可見此算法的優點是可以提供高網絡連接的可用性,但是它的資源利用率較低,只有一個接口處於工作狀態,在有 N 個網絡接口的情況下,資源利用率為1/N
2.3、mode=2(balance-xor)(平衡策略)
表示XOR Hash負載分擔,和交換機的聚合強制不協商方式配合。(需要xmit_hash_policy,需要交換機配置port channel)
特點:
基於指定的傳輸HASH策略傳輸數據包。缺省的策略是:(源MAC地址 XOR 目標MAC地址) % slave數量。其他的傳輸策略可以通過xmit_hash_policy選項指定,此模式提供負載平衡和容錯能力
2.4、mode=3(broadcast)(廣播策略)
表示所有包從所有網絡接口發出,這個不均衡,只有冗余機制,但過於浪費資源。此模式適用於金融行業,因為他們需要高可靠性的網絡,不允許出現任何問題。需要和交換機的聚合強制不協商方式配合。
特點:
在每個slave接口上傳輸每個數據包,此模式提供了容錯能力
2.5、mode=4(802.3ad)(IEEE 802.3ad 動態鏈接聚合)
表示支持802.3ad協議,和交換機的聚合LACP方式配合(需要xmit_hash_policy).標准要求所有設備在聚合操作時,要在同樣的速率和雙工模式,而且,和除了balance-rr模式外的其它bonding負載均衡模式一樣,任何連接都不能使用多於一個接口的帶寬。
特點:
創建一個聚合組,它們共享同樣的速率和雙工設定。根據802.3ad規范將多個slave工作在同一個激活的聚合體下。
外出流量的slave選舉是基於傳輸hash策略,該策略可以通過xmit_hash_policy選項從缺省的XOR策略改變到其他策略。需要注意的 是,並不是所有的傳輸策略都是802.3ad適應的,
尤其考慮到在802.3ad標准43.2.4章節提及的包亂序問題。不同的實現可能會有不同的適應 性。
必要條件:
- 條件1:ethtool支持獲取每個slave的速率和雙工設定
- 條件2:switch(交換機)支持IEEE 802.3ad Dynamic link aggregation
- 條件3:大多數switch(交換機)需要經過特定配置才能支持802.3ad模式
2.6、mode=5(balance-tlb)(適配器傳輸負載均衡)
是根據每個slave的負載情況選擇slave進行發送,接收時使用當前輪到的slave。該模式要求slave接口的網絡設備驅動有某種ethtool支持;而且ARP監控不可用。
特點:
不需要任何特別的switch(交換機)支持的通道bonding。在每個slave上根據當前的負載(根據速度計算)分配外出流量。如果正在接受數據的slave出故障了,另一個slave接管失敗的slave的MAC地址。
必要條件:
ethtool支持獲取每個slave的速率
2.7、mode=6(balance-alb)(適配器適應性負載均衡)
在5的tlb基礎上增加了rlb(接收負載均衡receive load balance).不需要任何switch(交換機)的支持。接收負載均衡是通過ARP協商實現的.
特點:
該模式包含了balance-tlb模式,同時加上針對IPV4流量的接收負載均衡(receive load balance, rlb),而且不需要任何switch(交換機)的支持。接收負載均衡是通過ARP協商實現的。bonding驅動截獲本機發送的ARP應答,並把源硬件地址改寫為bond中某個slave的唯一硬件地址,從而使得不同的對端使用不同的硬件地址進行通信。
來自服務器端的接收流量也會被均衡。當本機發送ARP請求時,bonding驅動把對端的IP信息從ARP包中復制並保存下來。當ARP應答從對端到達 時,bonding驅動把它的硬件地址提取出來,並發起一個ARP應答給bond中的某個slave。
使用ARP協商進行負載均衡的一個問題是:每次廣播 ARP請求時都會使用bond的硬件地址,因此對端學習到這個硬件地址后,接收流量將會全部流向當前的slave。這個問題可以通過給所有的對端發送更新 (ARP應答)來解決,應答中包含他們獨一無二的硬件地址,從而導致流量重新分布。
當新的slave加入到bond中時,或者某個未激活的slave重新 激活時,接收流量也要重新分布。接收的負載被順序地分布(round robin)在bond中最高速的slave上 當某個鏈路被重新接上,或者一個新的slave加入到bond中,接收流量在所有當前激活的slave中全部重新分配,通過使用指定的MAC地址給每個 client發起ARP應答。下面介紹的updelay參數必須被設置為某個大於等於switch(交換機)轉發延時的值,從而保證發往對端的ARP應答 不會被switch(交換機)阻截。
必要條件:
- 條件1:ethtool支持獲取每個slave的速率;
- 條件2:底層驅動支持設置某個設備的硬件地址,從而使得總是有個slave(curr_active_slave)使用bond的硬件地址,同時保證每個bond 中的slave都有一個唯一的硬件地址。如果curr_active_slave出故障,它的硬件地址將會被新選出來的 curr_active_slave接管其實mod=6與mod=0的區別:mod=6,先把eth0流量占滿,再占eth1,….ethX;而mod=0的話,會發現2個口的流量都很穩定,基本一樣的帶寬。而mod=6,會發現第一個口流量很高,第2個口只占了小部分流量。
三、配置代理和 apt 源
1、代理
代理的作用是通過代理服務器到網絡上獲取資源,比如國內無法獲取國外的某些軟件或者資源,可以通過配置代理的方式實現。這里我們不需要配置代理。
2、配置 APT 源
系統默認使用國外apt源,由於眾所周知的原因,國內訪問外國網站下載軟件的速度是很慢或者無法訪問的,因此我們將軟件的安裝包和系統更新包的下載地址修改為國內的鏡像服務器。國內的apt源很多,比如:阿里、網易163、中科大、清華、淘寶、騰訊等,這里我們使用阿里的APT的源。
四、配置磁盤分區
1、使用自動分區方式
默認分區方式按照系統內置的參數配置硬盤分區和大小,默認使用LVM邏輯卷,便於后期動態在線調整磁盤空間。自動分區方便,不需要了解各分區的作用、大小、格式等參數,但是可能會存在系統磁盤無法充分利用的情況,
注意:
在安裝系統是注意選擇安裝系統的磁盤,一般選擇SSD盤或者轉數更高的機械盤。
2、手動分區方式
2.1、使用LVM邏輯卷
如果依然要使用LVM邏輯卷便於后期動態在線調整磁盤空間,又便於我們根據自己的需要配置分區信息。因此我們可以采用手動分區方式。我們手動創建愛你LVM卷,默認沒有/boot
引導分區,會導致系統無法系統。為了解決這個問題。我們可以使用自動分區的方式創建boot應道分區。
選擇/
分區,然后Umount
卸載分區。
然后將系統默認創建的lv邏輯卷刪除,后面就可以根據自己的需要手動分區。
選中需要分區的卷組,創建邏輯卷,
根據需要填寫lv邏輯卷的名稱,例如:lv-swap
、lv-root
,lv-opt
,Size大小:根據實際需要填寫大小,分區格式可以根據用途選中不同的分區格式。
優師課堂服務器默認的數據和軟件包都是放在/opt
目錄下,因此可以將大部分容量放在改分區下。
分區完成后會彈出告警信息。選擇Continue
繼續安裝系統。
2.2、標准分區方式
選中我們需要分區的磁盤,然后根據實際的需要創建自己需要的分區和大小。
添加GPT分區。
創建boot分區,填寫分區大小以及分區格式,建議先創建boot分區,分區使用ext4方式,大小根據自己的需求填寫。
swap分區根據自己的實際情況創建,大小一般為服務器內存的1到2倍(32G以下),0.5倍(32到64G),大於64G一般分配32-64G都可以,也可以不分配,后期用到在動態添加即可。
創建根分區,這個空間可以稍微大些,系統文件以及大部分的軟件包或者配置文件以及系統日志文件均在該分區,如果該分區空間利用率達到100%后可能會出現服務無法正常啟動。
可以根據需要創建/opt分區。
五、配置用戶登錄信息
1、配置系統用戶
your name
:是使用在者的名稱,沒有太多實際意義,但是必須填寫。
your server's name
: 配置服務名
pick a username
:這個用戶名為登錄系統的用戶名
password
:需要輸入兩次相同密碼,建議密碼設置相對復雜些,避免被爆破
選擇install openssh server
然后按空格選中,如果不選該內容,系統安裝上之后無法通過SSH登錄服務器,只能通過本地控制台(顯示器)登錄。
由於我們需要部署自己的應用服務,因此系統內置服務我們都需要選中,直接進入下一步安裝操作系統即可。
如果前面配置了網絡,並且網絡可以訪問互聯網,那么系統會自動安裝更新。我們可以選擇取消更新並重啟系統。
六、手動配置鏈路聚合
如果在前面安裝系統時忘記配置鏈路聚合,也可以在系統安裝完成后進入系統手動配置聚合網卡。
將/etc/netplan/00-installer-config.yaml
默認配置文件備份后,創新創建一個yaml
文件,必須按照yaml格式配置,否則無法啟動。
1、主備模式
network:
ethernets:
ens33: {}
ens38: {}
bonds:
bond0:
addresses: [ 192.168.88.61/24 ]
gateway4: 192.168.88.1
nameservers:
addresses: [ 223.5.5.5,114.114.114.114 ]
interfaces:
- ens33
- ens38
parameters:
mode: active-backup
version: 2
2、動態鏈路聚合
network:
ethernets:
ens33: {}
ens38: {}
bonds:
bond0:
addresses: [ 192.168.88.61/24 ]
gateway4: 192.168.88.1
nameservers:
addresses: [ 223.5.5.5,114.114.114.114 ]
interfaces:
- ens33
- ens38
parameters:
lacp-rate: slow
mode: 802.3ad
transmit-hash-policy: layer2
version: 2
3、重新啟動網絡服務
netplan apply
通過ip add ls
命令查看bond網卡是否配置完成。
root@yskt:~# ip add ls
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether 66:80:82:25:e5:ef brd ff:ff:ff:ff:ff:ff
3: ens38: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether 66:80:82:25:e5:ef brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 66:80:82:25:e5:ef brd ff:ff:ff:ff:ff:ff
inet 192.168.88.61/24 brd 192.168.88.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::6480:82ff:fe25:e5ef/64 scope link
valid_lft forever preferred_lft forever