溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ProxmoxVE 之 5.3集群安裝及使用ceph

發(fā)布時(shí)間:2020-07-13 03:02:13 來源:網(wǎng)絡(luò) 閱讀:5324 作者:余偉兵 欄目:云計(jì)算

ProxmoxVE 之 5.3集群安裝及使用ceph ProxmoxVE 之 5.3集群安裝及使用ceph

 上面左邊是我的個(gè)人微信,如需進(jìn)一步溝通,請(qǐng)加微信。  右邊是我的公眾號(hào)“Openstack私有云”,如有興趣,請(qǐng)關(guān)注。



PromixVE 系列文章:

  • proxmox-私有云的另一個(gè)選擇

  • proxmox 之 與openstack的比較

  • ProxmoxVE 之集群安裝(V5.2)

  • ProxmoxVE(V5.2) 之 使用外部ceph存儲(chǔ)(luminous)   

  • ProxmoxVE 之 5.3集群安裝及使用ceph

  • ProxmoxVE 之 創(chuàng)建centos7基礎(chǔ)鏡像模板

  • ProxmoxVE 之 創(chuàng)建win10基礎(chǔ)鏡像模板

  • ProxmoxVE 之 V2V遷移(vmware->PVE)

  • ProxmoxVE 之 安裝oracle12C rac集群

  • ProxmoxVE 之 安裝oracle12C 數(shù)據(jù)庫(CDB和PDB)

  • ProxmoxVE 之 oracle12C 多CDB和PDB


    PVE5.3版本對(duì)于磁盤的管理,包括對(duì)分布式存儲(chǔ)ceph的支持據(jù)說都更加友好了。前期對(duì)5.2版本測(cè)試的時(shí)候,有些未盡事宜,比如直接通過pve自身的管理程序pveceph部署ceph存儲(chǔ),而不是使用外部ceph,現(xiàn)在手頭剛好也有相應(yīng)的實(shí)驗(yàn)資源,花一些時(shí)間對(duì)5.3版本重新做一次集群實(shí)驗(yàn),使用pve自帶的ceph部署工具進(jìn)行部署。

    具體安裝步驟就不詳細(xì)寫了,參考“ProxmoxVE 之集群安裝(V5.2)” 的安裝步驟。

    采用硬件配置:在物理機(jī)pve環(huán)境上面,創(chuàng)建3個(gè)虛擬機(jī),3vcpu/12G內(nèi)存/4塊硬盤/2塊網(wǎng)卡 ,其中硬盤方面1塊硬盤為系統(tǒng)盤32G,2塊32G的ceph盤,1塊32G的lvm盤,網(wǎng)卡方面1塊網(wǎng)卡同時(shí)給集群和虛擬機(jī)使用(192.168.1.0/24網(wǎng)段),1塊網(wǎng)卡作為ceph存儲(chǔ)網(wǎng)絡(luò)(192.168.170.0/24網(wǎng)段)使用。

    重要!?。?span >更改軟件源,默認(rèn)是訂閱版,如果不做修改,在使用pveceph init進(jìn)行ceph初始化安裝的時(shí)候會(huì)將整個(gè)環(huán)境破壞,切記!更改為非訂閱版,如下:

將/etc/apt/sources.list.d/pve-enterprise.list  文件內(nèi)的唯一一條記錄注釋掉:
#deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprise
wget -q -O- 'http://download.proxmox.com/debian/pve/dists/stretch/proxmox-ve-release-5.x.gpg' | apt-key add -
echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
apt update && apt dist-upgrade

    安裝ntp。ceph集群對(duì)時(shí)間同步的要求很高,需要安裝ntp服務(wù):

    apt-get install ntp -y

    安裝完成之后會(huì)自動(dòng)啟動(dòng)并同步debian的時(shí)間服務(wù)器,注意,是聯(lián)網(wǎng)的情況下,如果不連接外網(wǎng),需要設(shè)定內(nèi)網(wǎng)的ntp服務(wù),這里不贅述。


    消除“No valid subscription”提示的方法參考下面的網(wǎng)址:

    https://johnscs.com/remove-proxmox51-subscription-notice/

    即,ssh登錄服務(wù)器后執(zhí)行下面的指令:

    sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

    創(chuàng)建完集群后,如下圖:

ProxmoxVE 之 5.3集群安裝及使用ceph

    

    接下來配置ceph存儲(chǔ):

     參考官網(wǎng)這個(gè)網(wǎng)址:

    https://www.proxmox.com/en/training/video-tutorials/item/install-ceph-server-on-proxmox-ve

    這是一個(gè)詳細(xì)的視頻教程,基本的設(shè)計(jì)思路和我這個(gè)環(huán)境差不多,都是3個(gè)節(jié)點(diǎn),只有網(wǎng)絡(luò)是真正的3個(gè)網(wǎng)絡(luò),我是因?yàn)闂l件限制,將集群管理和虛擬機(jī)業(yè)務(wù)網(wǎng)絡(luò)合二為一了,其他的都差不多。

    1、首先在每一個(gè)節(jié)點(diǎn)安裝ceph軟件包:

    pveceph install --version luminous   

    注意,官網(wǎng)視頻里面用的jewel版本,我們安裝的pve版本是5.3對(duì)應(yīng)的ceph版本已經(jīng)是luminous版本了。

   2、初始化ceph存儲(chǔ)網(wǎng)絡(luò):

    pveceph init --network 192.168.170.0/24

    3、創(chuàng)建mon

    pveceph createmon

    在pve2和pve3上面登錄web界面創(chuàng)建mon:

ProxmoxVE 之 5.3集群安裝及使用ceph


ProxmoxVE 之 5.3集群安裝及使用ceph

ProxmoxVE 之 5.3集群安裝及使用ceph


    4、創(chuàng)建OSD:

ProxmoxVE 之 5.3集群安裝及使用ceph


ProxmoxVE 之 5.3集群安裝及使用ceph


sdb和sdc兩塊磁盤加入到osd ,同樣的,對(duì)pve2和pve3做同樣的操作,完成后如下:

ProxmoxVE 之 5.3集群安裝及使用ceph

    5、創(chuàng)建pools ,pool的名稱是ceph-vm,根據(jù)自己需要取,size=3表示正常的副本數(shù),min size=2表示最少的數(shù)據(jù)副本數(shù),pg_num=128表示邏輯存儲(chǔ)單元數(shù)未128,具體設(shè)置的策略請(qǐng)參考ceph相關(guān)文檔:

ProxmoxVE 之 5.3集群安裝及使用ceph

另外再創(chuàng)建一個(gè)測(cè)試的存儲(chǔ)池test。創(chuàng)建完成后,可以通過web界面看到ceph的整體狀態(tài)如下:

ProxmoxVE 之 5.3集群安裝及使用ceph


可以使用test測(cè)試存儲(chǔ)池做一個(gè)寫測(cè)試:

root@pve1:~# rados -p test bench 10 write --no-cleanup
hints = 1
Maintaining 16 concurrent writes of 4194304 bytes to objects of size 4194304 for up to 10 seconds or 0 objects
Object prefix: benchmark_data_pve1_78670
  sec Cur ops   started  finished  avg MB/s  cur MB/s last lat(s)  avg lat(s)
    0       0         0         0         0         0           -           0
    1      16        23         7   28.0015        28     0.98669    0.886351
    2      16        36        20   39.9226        52     1.98944     1.22191
    3      16        43        27   35.9512        28     0.57703     1.17363
    4      16        54        38   37.9597        44     1.64156     1.29788
    5      16        60        44   35.1689        24     2.00744     1.37846
    6      16        68        52   34.6399        32      2.2513     1.50074
    7      16        72        56   31.9779        16      2.1816     1.56136
    8      16        79        63   31.4803        28     2.38234     1.70338
    9      16        87        71   31.5374        32     1.63451      1.8151
   10      16        95        79   31.5831        32     2.82273     1.86001
   11       8        95        87   31.6205        32     1.66285     1.84418
Total time run:         11.064831
Total writes made:      95
Write size:             4194304
Object size:            4194304
Bandwidth (MB/sec):     34.343
Stddev Bandwidth:       9.54225
Max bandwidth (MB/sec): 52
Min bandwidth (MB/sec): 16
Average IOPS:           8
Stddev IOPS:            2
Max IOPS:               13
Min IOPS:               4
Average Latency(s):     1.85056
Stddev Latency(s):      0.714602
Max latency(s):         3.46178
Min latency(s):         0.57703
root@pve1:~#

    由于我使用的是7200轉(zhuǎn)的磁盤做的pve虛擬機(jī),掛載7200轉(zhuǎn)的磁盤做的虛擬磁盤,表現(xiàn)不佳。正式生產(chǎn)環(huán)境,如果是SSD盤,帶寬可以達(dá)到400M,IOPS可以達(dá)到100多。
下面是讀測(cè)試:

root@pve1:~# rados -p test bench 10 seq
hints = 1
  sec Cur ops   started  finished  avg MB/s  cur MB/s last lat(s)  avg lat(s)
    0       0         0         0         0         0           -           0
    1      16        61        45   179.942       180    0.509001    0.276338
    2      14        95        81   161.953       144    0.565471    0.309453
Total time run:       2.127305
Total reads made:     95
Read size:            4194304
Object size:          4194304
Bandwidth (MB/sec):   178.63
Average IOPS:         44
Stddev IOPS:          6
Max IOPS:             45
Min IOPS:             36
Average Latency(s):   0.350031
Max latency(s):       0.844504
Min latency(s):       0.0595479
root@pve1:~#

    讀測(cè)試的帶寬以及IOPS要比寫高很多。同樣,由于是測(cè)試環(huán)境,性能表現(xiàn)欠佳。如果是SSD盤,可以達(dá)到2.5G帶寬,600 IOPS ,那也是相當(dāng)不錯(cuò)的。


    6、創(chuàng)建RBD存儲(chǔ)池:

 ProxmoxVE 之 5.3集群安裝及使用ceph

   

接下來,使用這個(gè)RBD存儲(chǔ)池創(chuàng)建一個(gè)centos7虛擬機(jī):

ProxmoxVE 之 5.3集群安裝及使用ceph

創(chuàng)建完成start,提示kvm虛擬化設(shè)置不支持,原因是我們使用的kvm虛擬機(jī)進(jìn)行測(cè)試,kvm虛擬機(jī)里面再嵌套創(chuàng)建kvm虛擬機(jī):

ProxmoxVE 之 5.3集群安裝及使用ceph


解決辦法,先把該pve節(jié)點(diǎn)所有的虛擬機(jī)都關(guān)閉,在ProxmoxVE物理機(jī)上(注意,不是上面3個(gè)pve1/pve2/pve3)執(zhí)行下面的命令:

root@pve:~# modprobe -r kvm_intel
注意,如果提示...busy ,說明還有虛擬機(jī)在使用,需要先把該pve節(jié)點(diǎn)所有的虛擬機(jī)都關(guān)閉。
root@pve:~# modprobe kvm_intel nested=1
root@pve:~# cat /sys/module/kvm_intel/parameters/nested
Y
root@pve:~# echo "options kvm_intel nested=1" >> /etc/modprobe.d/modprobe.conf
root@pve:~# qm showcmd 111
/usr/bin/kvm -id 111 -name pve-1 -chardev 'socket,id=qmp,path=/var/run/qemu-server/111.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -pidfile /var/run/qemu-server/111.pid -daemonize -smbios 'type=1,uuid=d9eb0729-f0ee-4176-836d-308b70d13754' -smp '3,sockets=1,cores=3,maxcpus=3' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' -vga std -vnc unix:/var/run/qemu-server/111.vnc,x509,password -cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce -m 12000 -device 'pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e' -device 'pci-bridge,id=pci.2,chassis_nr=2,bus=pci.0,addr=0x1f' -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:b48afece2d1' -drive 'file=/var/lib/vz/template/iso/proxmox-ve_5.2-1.iso,if=none,id=drive-ide2,media=cdrom,aio=threads' -device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' -device 'virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5' -drive 'file=/dev/pvevg2/vm-111-disk-7,if=none,id=drive-scsi0,format=raw,cache=none,aio=native,detect-zeroes=on' -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,bootindex=100' -drive 'file=/dev/pvevg2/vm-111-disk-2,if=none,id=drive-scsi1,format=raw,cache=none,aio=native,detect-zeroes=on' -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=1,drive=drive-scsi1,id=scsi1' -drive 'file=/dev/pvevg2/vm-111-disk-3,if=none,id=drive-scsi2,format=raw,cache=none,aio=native,detect-zeroes=on' -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=2,drive=drive-scsi2,id=scsi2' -drive 'file=/dev/pvevg2/vm-111-disk-6,if=none,id=drive-scsi3,format=raw,cache=none,aio=native,detect-zeroes=on' -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=3,drive=drive-scsi3,id=scsi3' -netdev 'type=tap,id=net0,ifname=tap111i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' -device 'virtio-net-pci,mac=76:60:17:9D:6A:FF,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' -netdev 'type=tap,id=net1,ifname=tap111i1,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' -device 'virtio-net-pci,mac=6A:93:EB:0E:A8:84,netdev=net1,bus=pci.0,addr=0x13,id=net1,bootindex=301'
找到“-cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce”這部分,在enforce前面加“+vmx,”參數(shù)如下:
-cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,+vmx,enforce
然后執(zhí)行:qm stop 111 停止虛擬機(jī)后,再執(zhí)行上面修改后的命令。
虛擬機(jī)啟動(dòng)后,ssh進(jìn)入,執(zhí)行 grep vmx /proc/cpuinfo 查看是不是有輸出,如下:
root@pve-1:~# grep vmx /proc/cpuinfo 
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc nopl xtopology cpuid pni vmx cx16 x2apic hypervisor lahf_lm cpuid_fault pti tpr_shadow vnmi flexpriority ept vpid
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc nopl xtopology cpuid pni vmx cx16 x2apic hypervisor lahf_lm cpuid_fault pti tpr_shadow vnmi flexpriority ept vpid
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc nopl xtopology cpuid pni vmx cx16 x2apic hypervisor lahf_lm cpuid_fault pti tpr_shadow vnmi flexpriority ept vpid
表示已經(jīng)支持虛擬嵌套。

再重新啟動(dòng)上面創(chuàng)建的虛擬機(jī),成功!

ProxmoxVE 之 5.3集群安裝及使用ceph

測(cè)試成功!


總結(jié):

    ProxmoxVE確實(shí)使用太方便了,對(duì)于稍顯復(fù)雜的ceph分布式存儲(chǔ),已經(jīng)做到了方便實(shí)施的極限,只需要簡單幾條初始化的指令,后面全部通過web管理界面進(jìn)行配置和部署,方便至極,更棒的是,web管理界面還可以實(shí)時(shí)看到ceph存儲(chǔ)的各種狀態(tài),相當(dāng)于完全把ceph存儲(chǔ)的管理融合進(jìn)了PVE的統(tǒng)一管理。

    但是使用ceph的前提是,必須對(duì)ceph分布式存儲(chǔ)本身的一些概念弄清楚,比如ceph 的存儲(chǔ)規(guī)則,pg的概念,bucket的概念,ceph自身的功能組件mon、osd、pool的概念等等,建議如果對(duì)這些概念不熟悉,先通讀一遍ceph社區(qū)官網(wǎng)的文檔,然后動(dòng)手搭建ceph存儲(chǔ)試驗(yàn)。熟悉ceph之后,回過頭來再使用pve自帶的ceph管理功能就顯得非常簡單了。

    通過上面的實(shí)驗(yàn),也可以看到ProxmoxVE可以做到在自己的平臺(tái)上快速搭建環(huán)境嵌套虛擬化,可以方便廣大的PVE愛好者快速的熟悉PVE 的使用。通過我個(gè)人的經(jīng)歷,openstack的試驗(yàn)過程和復(fù)雜度,比PVE要高出好多倍,openstack如果要做一個(gè)完整的試驗(yàn)下來,熟練的情況下,如果要5天,那么,PVE的試驗(yàn),同樣是基礎(chǔ)虛擬化功能的條件下,可能只要1天甚至半天就能完成。

    


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI