https://blog.csdn.net/caiyqn/article/details/106303492
1 环境介绍
#存储也可以说是超融合
OS:Virtual Environment 6.2-4 pve231 主机 pve118 172.16.1.118 虚拟机1 pve119 172.16.1.119 虚拟机2 pve143 172.16.1.143 虚拟机3
#三台虚拟机的配置如下:内存,硬盘,cpu,网络配置同pve118,PVE的安装过程就不说明了,网上一堆,默认安装也ok
2 首先要使Proxmox VE 主机支持套娃
#PVE虚拟出来的主机CPU默认不支持vmx,也就是不支持嵌套虚拟化,所以在这里我们需要手动打开这个功能,这里查看的时候功能是关的
root@pve231:~# cat /sys/module/kvm_intel/parameters/nestedN
#关闭pve所有的虚拟机,并执行以下命令:
(如果执行报错,就要检查下虚拟机是否全部都关闭)
modprobe -r kvm_intel modprobe kvm_intel nested=1
#查看netsed是否开启
root@pve231:~# cat /sys/module/kvm_intel/parameters/nestedY
#设置自动加载nested命令
echo "options kvm_intel nested=1" >> /etc/modprobe.d/modprobe.conf
#至此,pve的套娃功能就开启完成;
3 设置虚拟机支持套娃功能,方法有两种
3.1 方法一:命令行模式开启,但是重启后就失效了,最好写进配置里
#以我的centos116为例,查看配置,不支持虚拟化:
root@pve231:~# qm showcmd 116/usr/bin/kvm -id 116 -name centos116 -chardev 'socket,id=qmp,path=/var/run/qemu-server/116.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' -mon 'chardev=qmp-event,mode=control' -pidfile /var/run/qemu-server/116.pid -daemonize -smbios 'type=1,uuid=a820085d-d873-46b2-9d4a-88aa7ed1e1b6' -smp '1,sockets=1,cores=1,maxcpus=1'-nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' -vnc unix:/var/run/qemu-server/116.vnc,password -cpu kvm64,enforce,+kvm_pv_eoi,+kvm_pv_unhalt,+lahf_lm,+sep -m 1024 -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 'vmgenid,guid=a218640f-b2f4-4641-8d21-1c09037cca4b' -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' -device 'VGA,id=vga,bus=pci.0,addr=0x2' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:c4896a5ad946' -device 'virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5' -drive 'file=/dev/SATA3_Disk/vm-116-disk-0,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,rotation_rate=1,bootindex=100' -drive 'file=/dev/SATA3_Disk/vm-116-disk-1,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' -netdev 'type=tap,id=net0,ifname=tap116i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' -device 'virtio-net-pci,mac=A6:59:D2:72:9E:D7,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' -machine 'type=pc+pve0'
#在这里要找到cpu的设置项
-cpu kvm64,enforce,+kvm_pv_eoi,+kvm_pv_unhalt,+lahf_lm,+sep -m 1024#找到这一段cpu配置,加上+vmx-cpu kvm64,enforce,+kvm_pv_eoi,+kvm_pv_unhalt,+lahf_lm,+sep,+vmx -m 1024#然后关闭116虚拟机,整段复制执行,重新开启虚拟机root@pve231:~# qm stop 116root@pve231:~# /usr/bin/kvm -id 116 -name centos116 -chardev 'socket,id=qmp,path=/var/run/qemu-server/116.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' -mon 'chardev=qmp-event,mode=control' -pidfile /var/run/qemu-server/116.pid -daemonize -smbios 'type=1,uuid=a820085d-d873-46b2-9d4a-88aa7ed1e1b6' -smp '1,sockets=1,cores=1,maxcpus=1'-nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' -vnc unix:/var/run/qemu-server/116.vnc,password -cpu kvm64,enforce,+kvm_pv_eoi,+kvm_pv_unhalt,+lahf_lm,+sep,+vmx -m 1024 -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 'vmgenid,guid=a218640f-b2f4-4641-8d21-1c09037cca4b' -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' -device 'VGA,id=vga,bus=pci.0,addr=0x2' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:c4896a5ad946' -device 'virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5' -drive 'file=/dev/SATA3_Disk/vm-116-disk-0,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,rotation_rate=1,bootindex=100' -drive 'file=/dev/SATA3_Disk/vm-116-disk-1,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' -netdev 'type=tap,id=net0,ifname=tap116i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' -device 'virtio-net-pci,mac=A6:59:D2:72:9E:D7,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' -machine 'type=pc+pve0'
#确认116虚拟机是否running
root@pve231:~# qm list |grep 116 116 centos116 running 1024 50.00 869792
#登陆116虚拟机查看是否开启vmx
root@centos116:~# egrep "vmx|svm" /proc/cpuinfoflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cpuid_fault pti ssbd ibrs ibpb stibp tpr_shadowvnmi flexpriority ept vpid fsgsbase tsc_adjust smep erms xsaveopt arat umip arch_capabilities flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cpuid_fault pti ssbd ibrs ibpb stibp tpr_shadowvnmi flexpriority ept vpid fsgsbase tsc_adjust smep erms xsaveopt arat umip arch_capabilities
3.2 方法二:web界面配置开启,放心重启配置不会丢失
#在创建虚拟机的过程中,cpu的类别选择host即可。
#创建好后,虚拟机查看是否开启vmx
root@pve118:~# egrep "vmx|svm" /proc/cpuinfoflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cpuid_fault pti ssbd ibrs ibpb stibp tpr_shadowvnmi flexpriority ept vpid fsgsbase tsc_adjust smep erms xsaveopt arat umip arch_capabilities flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cpuid_fault pti ssbd ibrs ibpb stibp tpr_shadowvnmi flexpriority ept vpid fsgsbase tsc_adjust smep erms xsaveopt arat umip arch_capabilities
4 集群创建及节点加入
4.1 集群创建
#pve的web功能已经很完善了,集群创建在web界面就能够完成如下面的图所示:
#三台虚拟机选一台创建集群:pve148
#数据中心-集群-创建集群
#设置集群名称及选择集群通迅网络连接ip,实际应该为172.16.1.143,点击创建显示done即可;
#这里的集群名称为pvvve
4.2 节点加入集群
#在pve143,找到加入集群的密钥:
#数据中心-集群-加入信息,点击复制
#在pve118及pve119,将密钥粘贴进去即可读出集群信息
#数据中心-集群-加入集群,输入pve143的root密码,点击join 'pvvve’即可加入集群
#验证
5 CEPH搭建及挂载
#pve的ceph集群搭有两种方式,一是web,二是直接在pve cli命令界面操作(建议使用这种方式,因为pve的源下载速度慢成渣了,太容易中断了!)
5.1 方法一:web界面创建
#pve143-ceph-安装ceph
#ceph安装过程就不表了
#安装完成后在界面上创建对应的监视器及管理员,如下图
#创建OSD,这里的OSD硬盘就是刚刚环境介绍的每台服务器上挂载的两块盘
#至此方法一部署完成
5.2 方法二:pve cli界面创建(推荐使用这种方式)
#在每个节点安装ceph,
root@pve118~# pveceph install --version luminous
#如图所示,其他两台也如此操作
#安装完成后,配置ceph集群存储网络
root@pve148:~# pveceph init --network 172.16.1.0/24
#创建ceph集群Mon监控 - 每台执行
root@pve118:~# pveceph createmonroot@pve119:~# pveceph createmonroot@pve143:~# pveceph createmon
#创建ceph mgr - 每台执行
root@pve118:~# pveceph createmgrroot@pve119:~# pveceph createmgrroot@pve143:~# pveceph createmgr
#创建Ceph集群的 OSDs - 每台执行
root@pve118:~# pveceph createosd /dev/sdbroot@pve118:~# pveceph createosd /dev/sdcroot@pve119:~# pveceph createosd /dev/sdbroot@pve119:~# pveceph createosd /dev/sdcroot@pve143:~# pveceph createosd /dev/sdbroot@pve143:~# pveceph createosd /dev/sdc
#创建集群存储资源池ceph osd pool create 资源池名称 128 128 (这里只要一台执行)
root@pve143:~# ceph osd pool create pvepool1 128 128pool 'pvepool1' created
这里的128不是随便写的,是需要大家计算的,超出会报错
Pool 对应 PG PGP数量的计算公式: 官方计算地址
Total PGs = ((Total_number_of_OSD * Target PGs per OSD) / max_replication_count) / pool_count
Target PGs per OSD 通常被设置为 100
最终的结果取2的幂次方最靠近的数,这里为128
#激活pvepool1为rbd存储池,用于存储pve的磁盘映像跟容器
root@pve143:~# ceph osd pool application enable pvepool1 rbdenabled application 'rbd' on pool 'pvepool1'
#最后查看集群状态
root@pve143:~# ceph -s cluster: id: 79475a09-72be-418a-921f-243241b0c5e3 health: HEALTH_OK services: mon: 3 daemons, quorum pve143,pve118,pve119 (age 4h) mgr: pve143(active, since 3h), standbys: pve119, pve118 osd: 6 osds: 6 up (since 4h), 6 in (since 4h) data: pools: 1 pools, 128 pgs objects: 0 objects, 0 B usage: 6.0 GiB used, 240 GiB / 246 GiB avail pgs: 128 active+clean
5.3 挂载ceph rbd 磁盘
#在数据中心-存储-添加RBD,填写ID,设置存储对象,这样集群节点就都会挂载上这个磁盘
#最终效果如图:
6 启用pve HA功能
6.1 创建HA群组
#此群组用于设置参与ha的节点,并设置节点设备故障后能够迁移的优先级、
#数据中心-HA-群组-创建
#创建完成
#这里会显示HA集群的状态
6.2 创建参与HA的对象
#数据中心-HA-资源-添加参与ha的容器或者虚拟机(这里的虚拟机一定要是存储在cephrbd盘里面的才行)
6.3 验证HA故障迁移
#强制关闭pve118,观察vm100的迁移情况
#vm100已经顺利的迁移至pve119并已顺利启动
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/5213.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~