參考:https://blog.csdn.net/hanziqing0630/article/details/114262035
一、Proxmox Virtual Environment介紹
Proxmox VE 是用於企業虛擬化的開源服務器管理平台。它在單個平台上緊密集成了KVM虛擬機管理程序和LXC,軟件定義的存儲以及網絡功能。借助基於Web的集成用戶界面,您可以輕松管理VM和容器,高可用性群集或集成的災難恢復工具。
同時Proxmox VE對接Proxmox備份服務器,可實現對VM、容器的全量和增量備份,可顯著減少網絡負載並節省寶貴的存儲空間。
二、環境介紹
本文章所述環境采用3台物理服務器(含4口萬兆網卡),1台萬兆業務交換機,1台萬兆管理交換機。
注意:由於使用ceph搭建分布式存儲,為保證性能,管理網絡及業務網絡強烈建議采用全萬兆部署。
2.1 軟件版本
本次部署采用當前最新版本:Proxmox VE 6.3,可根據當時情況選擇最新版本。
2.2 服務器配置
三、軟件獲取
訪問官網下載ISO鏡像文件,根據需要選擇版本:
https://www.proxmox.com/en/downloads/category/iso-images-pve
四、RAID規划
4.1 系統盤
- 建議采用兩塊SSD組成raid 1,作為系統盤。
不同品牌服務器設置方法不同,請參照各品牌官方文檔。
4.2 ceph盤
- ceph不推薦基於raid盤創建osd,所以除系統盤外,其余磁盤全部設置為非raid模式。
不同品牌服務器設置方法不同,請參照各品牌官方文檔。
五、物理網絡
生產環境對可靠性要求較高,所以建議采用鏈路聚合方式,將多個物理網卡綁定為一個邏輯接口,從而提高網絡的性能及可靠性。
鏈路聚合可在以下三種模式中選擇:
- LACP(802.3ad):基於LACP協議的鏈路聚合,此模式交換機需配置鏈路聚合,模式為lacp。
- 靜態聚合:靜態鏈路聚合,此模式交換機需配置鏈路聚合,模式為靜態(華為、H3C默認為此模式;思科為on模式)。
- active-backup:主備模式,網卡一主一備,主網卡故障時備份網卡接替主網卡工作,此模式交換機無需做鏈路聚合配置。
若交換機支持LACP,推薦采用LACP模式。否則你通常應該使用 active-backup 模式。此處采用LACP模式進行演示。
如果您打算在綁定接口上運行PVE集群網絡,那么您必須在綁定接口上使用 active-passive 模式,其他模式是不支持的。
5.1 網絡規划
5.1.1 物理網絡拓撲
5.1.2 vlan及網段規划
5.2 網絡配置
以華為交換機為例。
5.2 網絡配置
以華為交換機為例。
六、PVE安裝
6.1 選擇第一個選項,安裝PVE
6.2 同意協議
6.3 選擇系統盤
注意:此處一定要選擇RAID規划中創建的RAID 1系統盤。
6.4 配置國家、地區
6.5 配置密碼、郵箱
如果為生產環境務必配置為強口令。郵箱建議配置為真實郵箱。
6.6 配置網卡、主機名、IP地址、DNS等信息
- 此處選擇服務器第一塊網卡,用於管理網絡,按我們的規划應為eno1
- 每個節點主機名不能相同,主機名可以參考以下規划,域名請按需配置。
- 主機名、IP地址等信息按實際情況配置,配置公網DNS,用於pve連接互聯網。
6.7 檢查無誤后點擊安裝
安裝結束后重啟,通過瀏覽器訪問,出現以下頁面內容證明安裝成功。
地址:https://你的IP地址:8006
用戶名:root
密碼:為安裝時配置的密碼。
域:選擇Linux PAM
6.8 按照此方法安裝全部服務器
七、更換軟件源(三個節點都需要配置)
由於自帶的軟件源速度較慢,此處選擇科大源:http://mirrors.ustc.edu.cn
涉及的軟件源有三個,分別為debain、pve、ceph,需要分別修改下列文件。
7.1 通過web管理頁面中的shell或ssh登錄后台
7.2 更換debian源
vi /etc/apt/sources.list
刪除默認的源,替換為:
deb http://mirrors.ustc.edu.cn/debian buster main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian buster main contrib non-free
deb http://mirrors.ustc.edu.cn/debian buster-updates main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian buster-updates main contrib non-free
deb http://mirrors.ustc.edu.cn/debian-security/ buster-security main non-free contrib
# deb-src http://mirrors.ustc.edu.cn/debian-security/ buster-security main non-free contrib
7.3 更換pve源為非訂閱源
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
CODENAME=`cat /etc/os-release |grep CODENAME |cut -f 2 -d "="`
echo "deb http://mirrors.ustc.edu.cn/proxmox/debian $CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
7.4 添加 Ceph 鏡像源
注意:因后面 PVE 安裝 Ceph 可能會使用官方源覆蓋 /etc/apt/sources.list.d/ceph.list 這個文件的內容,此處使用 ceph_mirror.list 這個文件替代。
創建 ceph_mirror.list 文件:
vi /etc/apt/sources.list.d/ceph_mirror.list
增加以下內容:
deb http://mirrors.ustc.edu.cn/proxmox/debian/ceph-octopus/ buster main
八、更新PVE至最新版本(按需)
根據實際需求決定是否更新為最新版本。
如需更新三台節點都需要執行:
apt upgrade
九、基礎配置(三個節點都需要配置)
9.1 安裝ifupdown2
此組件用於配置網卡后重啟網卡操作:
apt install ifupdown2
9.2 安裝vim
apt install vim
9.3 配置ntp服務
配置統一的時鍾源
- 如果有條件建議在內網部署一台ntp服務器,所有節點與內網ntp同步時鍾。
- 如果沒有內網NTP服務器,可以采用下列NTP服務器。
阿里雲:ntp.aliyun.com
國家授時中心:ntp.ntsc.ac.cn
十、PVE網絡配置(三個節點都需要配置)
10.1 PVE服務器網絡拓撲
放一張圖有助於理解配置,可以結合5.1.1章節拓撲圖理解。
10.2 管理網絡
10.2.1 編輯vmbr0
移除eno1,以便於將eno1加入到bond0中,刪除橋接端口中的eno1,然后點擊OK。
10.2.2 創建bond0
點擊創建Linux Bond。
名稱:bond0
slaves:eno1 eno2
模式:LACP (802.3ad)
Hash策略:layer2+3
按以上參數配置,然后點擊OK。
10.2.3 編輯vmbr0
橋接端口配置:bond0。
選中“vlan感知”選項,然后點擊OK。
10.2.4 應用配置
如果感覺配置有問題可以點擊還原按鈕,還原為配置前狀態。
如果沒有問題,點擊應用配置使配置生效。
網絡配置不正確可能會導致無法管理節點,應用配置前請確認配置正確,如果出現無法管理的情況需要進入shell手動修改配置。
10.3 業務網絡
業務網絡配置與管理網絡類似。
10.3.1 創建bond1
點擊創建Linux Bond。
名稱:bond1
slaves:eno3 eno4
模式:LACP (802.3ad)
Hash策略:layer2+3
按以上參數配置,然后點擊OK。
10.3.2 創建vmbr1
橋接端口配置:bond1。
選中“vlan感知”選項,然后點擊OK。
10.3.3 應用配置
點擊應用配置使配置生效。
10.4 網絡配置檢查
在交換機中檢查聚合接口狀態是否正常。
查看所有eth-trunk接口狀態,Status為Selected,則聚合接口正常。
十一、集群組建
創建集群,將三台節點加入同一集群。
11.1 在其中一個節點上點擊,”數據中心“ — ”集群“ — ”創建集群“。
11.2 點擊加入信息,復制加入信息。
11.3 在其他兩個節點上,點擊加入集群,粘貼加入信息,然后輸入第一台節點的root密碼,即可完成加入。
11.4 加入集群完成后需要刷新頁面才能正常使用,全部加入完成后,就可以在一個節點上管理集群中所有節點了。
十二、ceph
Ceph是一種為優秀的性能、可靠性和可擴展性而設計的統一的、分布式文件系統。它可以將多台服務器中的硬盤聚合成一個集群,對外可提供文件存儲、塊存儲、對象存儲等多種形式,ceph的另一個特點是數據采用多副本方式存儲,避免由於單點故障造成的業務中斷和數據丟失。
PVE自帶了ceph的圖形化安裝、管理工具,集群搭建完成后,可以快速完成ceph的安裝、配置。同時pve也提供命令行工具,可以使用命令行對ceph進行自定義配置。
12.1 ceph磁盤規划
我的環境中,sda到sdh為8塊HDD硬盤,sdi到sdl為4塊SSD硬盤。
為提高hdd的性能,我們將sdi作為所有hdd硬盤的DB盤,將sdj作為所有hdd硬盤的WAL磁盤。
請注意DB盤和WAL盤不能相同,如果只有一塊SSD可以將SSD分為兩個區,分別作為DB盤和WAL盤。
分區建議:根據PVE文檔建議,DB盤容量=數據盤總容量10%,WAL盤容量=數據盤總容量1%,假設數據盤共8T,則DB分區容量需>800G,WAL分區容量需>80G,考慮到單位換算及損耗,需要適當增加容量,請根據實際情況規划。
- 詳細規划如下:
12.2 ceph安裝
在全部節點中,安裝ceph組件。
注意,實際操作中此步驟會在 /etc/apt/sources.list.d/ceph.list 文件中配置官方源。
12.2.1 選擇節點 — ”ceph“ 點擊 ” Install ceph ”
12.2.2 選擇版本,此處選擇 “ 15.2 ”
12.2.3 輸入 ” Y “ 開始安裝
如果軟件包下載速度較慢,可以先安裝一台,然后將安裝包拷貝到其他節點相同路徑中。
安裝包保存路徑:/var/cache/apt/archives
12.3 ceph配置
此配置是將ssd硬盤和hdd硬盤分別創建pool,分別為sdd_data和hdd_data。
12.3.1 創建osd
在 ”ceph“ — ”osd“ 選項卡創建OSD。
正常情況下磁盤類型會自動識別,如果識別的不正確,注意手動調整。
創建方式如下:
- HDD盤
創建hdd時注意選擇DB和WAL磁盤。
- SSD盤
- 如果創建時類型選擇錯誤,可以用命令行修改:
假設osd0需要更改。
刪除osd類別信息:
ceph osd crush rm-device-class osd.0
設置osd類別信息
ceph osd crush set-device-class ssd osd.0
12.3.2 創建class rule
- 創建HDD rule
ceph osd crush rule create-replicated hdd_rule default host hdd
- 創建SSD rule
ceph osd crush rule create-replicated ssd_rule default host ssd
12.3.3 創建存儲池
- 創建HDD pool
ceph osd pool create hdd_data hdd_rule
ceph osd pool application enable hdd_data hdd_data
- 創建SSD pool
ceph osd pool create ssd_data ssd_rule
ceph osd pool application enable ssd_data ssd_data
注意,如果是使用單個節點的測試環境,創建存儲池后集群會出現以下警告信息。
root@pve1:~# ceph -s
cluster:
id: e78680bc-550b-49e4-baa5-3a6d8e883329
health: HEALTH_WARN
1 MDSs report slow metadata IOs
Reduced data availability: 193 pgs inactive
Degraded data redundancy: 193 pgs undersized
services:
mon: 1 daemons, quorum pve1 (age 45m)
mgr: pve1(active, since 45m)
mds: 1/1 daemons up
osd: 3 osds: 3 up (since 44m), 3 in (since 44m)
data:
volumes: 1/1 healthy
pools: 4 pools, 193 pgs
objects: 0 objects, 0 B
usage: 17 MiB used, 400 GiB / 400 GiB avail
pgs: 100.000% pgs not active
193 undersized+peered
progress:
Global Recovery Event (7m)
[............................]
原因是集群默認的 crushmap 規則是按 host 級別,可使用以下方法修改為 osd 級別:
ceph osd getcrushmap -o /etc/ceph/crushmap
crushtool -d /etc/ceph/crushmap -o /etc/ceph/crushmap.txt
sed -i 's/step chooseleaf firstn 0 type host/step chooseleaf firstn 0 type osd/' /etc/ceph/crushmap.txt
crushtool -c /etc/ceph/crushmap.txt -o /etc/ceph/crushmap-new
ceph osd setcrushmap -i /etc/ceph/crushmap-new
12.3.4 添加存儲池至PVE
”數據中心“ — ”存儲“ — ”添加“ — ”RBD“。
- 添加hdd存儲池:
- 添加ssd存儲池:
十三、安全加固
13.1 配置公鑰登錄
13.1.1 生成密鑰對
以xshell為例。
- 生成密鑰
- 設置名稱及密碼
設置密碼為可選項,為保證密鑰安全,建議設置。
13.1.2 將公鑰復制至服務器"/root/.ssh/authorized_keys"文件中,選擇"SSH2 - OpenSSH"格式。
vim /root/.ssh/authorized_keys
13.1.3 禁止ssh使用密碼登錄,禁止前先驗證一下公鑰方式能否登錄。
# 編輯sshd配置文件
vim /etc/ssh/sshd_config
# 將下列配置添加到最后一行
PasswordAuthentication no
# 重啟sshd服務
systemctl restart sshd