您好,登錄后才能下訂單哦!
上面左邊是我的個人微信,如需進一步溝通,請加微信。 右邊是我的公眾號“Openstack私有云”,如有興趣,請關注。
PromixVE 系列文章:
proxmox-私有云的另一個選擇
proxmox 之 與openstack的比較
ProxmoxVE 之集群安裝(V5.2)
ProxmoxVE(V5.2) 之 使用外部ceph存儲(luminous)
ProxmoxVE 之 5.3集群安裝及使用ceph
ProxmoxVE 之 創建centos7基礎鏡像模板
ProxmoxVE 之 創建win10基礎鏡像模板
ProxmoxVE 之 V2V遷移(vmware->PVE)
ProxmoxVE 之 安裝oracle12C rac集群
ProxmoxVE 之 安裝oracle12C 數據庫(CDB和PDB)
ProxmoxVE 之 oracle12C 多CDB和PDB
PVE5.3版本對于磁盤的管理,包括對分布式存儲ceph的支持據說都更加友好了。前期對5.2版本測試的時候,有些未盡事宜,比如直接通過pve自身的管理程序pveceph部署ceph存儲,而不是使用外部ceph,現在手頭剛好也有相應的實驗資源,花一些時間對5.3版本重新做一次集群實驗,使用pve自帶的ceph部署工具進行部署。
具體安裝步驟就不詳細寫了,參考“ProxmoxVE 之集群安裝(V5.2)” 的安裝步驟。
采用硬件配置:在物理機pve環境上面,創建3個虛擬機,3vcpu/12G內存/4塊硬盤/2塊網卡 ,其中硬盤方面1塊硬盤為系統盤32G,2塊32G的ceph盤,1塊32G的lvm盤,網卡方面1塊網卡同時給集群和虛擬機使用(192.168.1.0/24網段),1塊網卡作為ceph存儲網絡(192.168.170.0/24網段)使用。
重要!!!更改軟件源,默認是訂閱版,如果不做修改,在使用pveceph init進行ceph初始化安裝的時候會將整個環境破壞,切記!更改為非訂閱版,如下:
將/etc/apt/sources.list.d/pve-enterprise.list 文件內的唯一一條記錄注釋掉: #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集群對時間同步的要求很高,需要安裝ntp服務:
apt-get install ntp -y
安裝完成之后會自動啟動并同步debian的時間服務器,注意,是聯網的情況下,如果不連接外網,需要設定內網的ntp服務,這里不贅述。
消除“No valid subscription”提示的方法參考下面的網址:
https://johnscs.com/remove-proxmox51-subscription-notice/
即,ssh登錄服務器后執行下面的指令:
sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
創建完集群后,如下圖:
接下來配置ceph存儲:
參考官網這個網址:
https://www.proxmox.com/en/training/video-tutorials/item/install-ceph-server-on-proxmox-ve
這是一個詳細的視頻教程,基本的設計思路和我這個環境差不多,都是3個節點,只有網絡是真正的3個網絡,我是因為條件限制,將集群管理和虛擬機業務網絡合二為一了,其他的都差不多。
1、首先在每一個節點安裝ceph軟件包:
pveceph install --version luminous
注意,官網視頻里面用的jewel版本,我們安裝的pve版本是5.3對應的ceph版本已經是luminous版本了。
2、初始化ceph存儲網絡:
pveceph init --network 192.168.170.0/24
3、創建mon
pveceph createmon
在pve2和pve3上面登錄web界面創建mon:
4、創建OSD:
sdb和sdc兩塊磁盤加入到osd ,同樣的,對pve2和pve3做同樣的操作,完成后如下:
5、創建pools ,pool的名稱是ceph-vm,根據自己需要取,size=3表示正常的副本數,min size=2表示最少的數據副本數,pg_num=128表示邏輯存儲單元數未128,具體設置的策略請參考ceph相關文檔:
另外再創建一個測試的存儲池test。創建完成后,可以通過web界面看到ceph的整體狀態如下:
可以使用test測試存儲池做一個寫測試:
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轉的磁盤做的pve虛擬機,掛載7200轉的磁盤做的虛擬磁盤,表現不佳。正式生產環境,如果是SSD盤,帶寬可以達到400M,IOPS可以達到100多。
下面是讀測試:
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:~#
讀測試的帶寬以及IOPS要比寫高很多。同樣,由于是測試環境,性能表現欠佳。如果是SSD盤,可以達到2.5G帶寬,600 IOPS ,那也是相當不錯的。
6、創建RBD存儲池:
接下來,使用這個RBD存儲池創建一個centos7虛擬機:
創建完成start,提示kvm虛擬化設置不支持,原因是我們使用的kvm虛擬機進行測試,kvm虛擬機里面再嵌套創建kvm虛擬機:
解決辦法,先把該pve節點所有的虛擬機都關閉,在ProxmoxVE物理機上(注意,不是上面3個pve1/pve2/pve3)執行下面的命令:
root@pve:~# modprobe -r kvm_intel 注意,如果提示...busy ,說明還有虛擬機在使用,需要先把該pve節點所有的虛擬機都關閉。 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,”參數如下: -cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,+vmx,enforce 然后執行:qm stop 111 停止虛擬機后,再執行上面修改后的命令。 虛擬機啟動后,ssh進入,執行 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 表示已經支持虛擬嵌套。
再重新啟動上面創建的虛擬機,成功!
測試成功!
總結:
ProxmoxVE確實使用太方便了,對于稍顯復雜的ceph分布式存儲,已經做到了方便實施的極限,只需要簡單幾條初始化的指令,后面全部通過web管理界面進行配置和部署,方便至極,更棒的是,web管理界面還可以實時看到ceph存儲的各種狀態,相當于完全把ceph存儲的管理融合進了PVE的統一管理。
但是使用ceph的前提是,必須對ceph分布式存儲本身的一些概念弄清楚,比如ceph 的存儲規則,pg的概念,bucket的概念,ceph自身的功能組件mon、osd、pool的概念等等,建議如果對這些概念不熟悉,先通讀一遍ceph社區官網的文檔,然后動手搭建ceph存儲試驗。熟悉ceph之后,回過頭來再使用pve自帶的ceph管理功能就顯得非常簡單了。
通過上面的實驗,也可以看到ProxmoxVE可以做到在自己的平臺上快速搭建環境嵌套虛擬化,可以方便廣大的PVE愛好者快速的熟悉PVE 的使用。通過我個人的經歷,openstack的試驗過程和復雜度,比PVE要高出好多倍,openstack如果要做一個完整的試驗下來,熟練的情況下,如果要5天,那么,PVE的試驗,同樣是基礎虛擬化功能的條件下,可能只要1天甚至半天就能完成。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。