proxmox虚拟化超融合平台学习

proxmox虚拟化超融合平台学习

标签: 虚拟化  

k8s course

proxmox虚拟化超融合平台学习

Proxmox VE是一个完整的企业虚拟化开源平台。借助内置的Web界面,您可以轻松管理VM和容器,软件定义的存储和网络,高可用性集群以及单个解决方案上的多个开箱即用工具。从proxmox5.版本开始,官方整合了分布式文件系统ceph,并对其进行了改进。这样,就和openstack一样,存储方面集成实现了分布式存储,实现了计算、网络、存储一体化解决方案,即所谓的超融合。

proxmox的主要劣势,是这个开源产品只有一个厂商维护,叫做Proxmox Server Solutions 公司,但是我想如果产品足够稳定可靠,不用太多的定制化要求,能够拿来就用就行,只要足够方便好用,而且免费,管它是什么产品还是什么厂家 :) 话说回来,如果需要更多更好更及时的技术支持,也可以直接购买这家公司的技术支持服务。

Proxmox的主要特性,去中心化、超融合、高可用、开源低成本、易于实施管理,前面几个特性都和openstack一样,但是最后一点易于实施管理,openstack却做得不是特别好,对于易于实施管理这一点,主要有以下几个方面(引述):

1、proxmox以iso文件提供下载,刻录到u盘,引导进行安装,除输入ip、用户密码等少数项外,一路回车,数分钟即可完成安装;

2、创建集群,只需登陆每个系统执行一条指令,马上就能看到效果。请问一下,别的平台能有这么便捷么?

3、创建ceph存储池,也是寥寥几步就可完成,并很快可以在管理界面看到效果;

4、web界面组成对象高可用(ha),也是易如反掌。

5、扩充容量也非常容易,差不多就是重复前边几条操作即可完成。

6、统一界面。一个web入口,管理节点、存储、网络、虚拟机等所有资源,绝大部分的用户操纵,都可以在此界面完成,也不需要安装什么客户端。

和vmware一样好用!而且免费,同时还支持各类存储,包括分布式存储ceph和zfs,能够像openstack一样轻松的实现超融合,在使用分布式存储的情况下可以很方便廉价的实现虚拟机的HA以及动态迁移,这简直是一个虚拟化的大杀器!!!

安装

1.下载iso 刻录u盘 ultralISO 打开iso-启动写入硬盘映像-raw或hdd+

2.服务器安装

3.初始化设置

  • 注释订阅 vi /etc/apt/sources.list.d/pve-enterprise.list

  • 去除公司网络限制cat /etc/apt/apt.conf<br /> Acquire::http::User-Agent "wywlinux";

  • 执行更新 apt update && apt upgrade

  • 安装虚拟交换机

apt install openvswitch-switch ntp -y

  • 安装nfs

node3操作

apt-get install nfs-common nfs-kernel-server
    pvcreate /dev/sdb     ---将第二块盘划分一个pv
    vgcreate pve1-vg-sdb /dev/sdb   ---创建vg
    lvcreate -l  100%VG -n pve1-lvm-nfs pve1-vg-sdb     ---将vg的所有空间都给lv ,lv名称是pve1-lvm-nfs
mkfs.xfs /dev/pve1-vg-sdb/pve1-lvm-nfs
mkdir -p /data/pve1-nfs
    设置挂载点 :

    在/etc/fstab文件中写入下面这行,使开机自动挂载:
    /dev/pve1-vg-sdb/pve1-lvm-nfs /data/pve1-nfs xfs defaults 0 0
执行如下命令进行nfs服务端的安装。
apt-get install nfs-common nfs-kernel-server
配置共享目录
vi /etc/exports
增加如下内容:
/data/pve1-nfs     *(rw,sync,no_root_squash,no_subtree_check,insecure)
启动nfs服务端
/etc/init.d/nfs-kernel-server start

注:如果修改了/etc/exports的内容,执行 exportfs -a  进行更新

挂载nfs共享目录

如果设置正确,export会出现下拉列表

选择正确内容,会建立文件夹,否则不出。

而且重启后nfs可能会不好使,建议外挂freenas等。

4.测试环境规划

  • 网络:业务网络与集群管理网络(corosync)、ceph存储网络,如果有条件,每个网络都做bond。bond类型的选择,集群管理网络直接使用active-backup,其他的最好使用LACP(802.3ad)链路聚合,但是这种方式需要在交换机侧做配置,两个交换机之间也要做级联,链路聚合的好处是一稳定,二带宽不浪费,三高可用。

  • 存储方面,除了系统盘之外,每台物理机使用2块硬盘贡献出来作为ceph存储池使用,1块硬盘作为本地lvm存储并挂载给镜像和备份目录使用,这样可以比较灵活,需要实现HA功能虚拟机可以放在ceph存储池,lvm存储池主要存放模板镜像文件,也可以给其他虚拟机使用,lvm存储池的虚拟机在相应速度上理论上要比ceph的要高,这里具体不阐述。ceph存储池使用3mon,3副本。

于以上考虑,在这台pve环境上面,创建3个虚拟机,3vcpu/12G内存/4块硬盘/2块网卡 ,其中硬盘方面1块硬盘为系统盘30G,2块50G的ceph盘,1块20G的lvm盘,网卡方面2块网卡bond同时给集群和虚拟机使用(10.32.166.0/24网段),2块网卡bond作为ceph存储网络(10.32.99.0/24网段)使用。

由于实验环境是proxmox嵌套,kvm有虚拟机启动失败问题,开启虚拟化嵌套解决,开启方法:

root@pve:~# modprobe -r kvm_intel
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
表示已经支持虚拟嵌套。

pve集群设置

界面创建集群,或者pvecm create 集群名
其他节点执行 pvecm add ip或主机名
查看状态pvecm status

3台pve节点的网络设置

  • 创建bond0 存储网络

  • 重启主机生效,测试ping

    vswitch vlan网络隔离用,参考vmware

存储配置

  • ceph

    各节点执行

pveceph install --version luminous

配置ceph集群存储网络

pveceph init --network 10.32.99.0/24

修改ceph配置文件

http://docs.ceph.org.cn/rados/configuration/network-config-ref/

创建ceph集群存储Mon监控

各节点上执行pveceph createmon

或者界面操作:

创建集群存储资源池

性能测试

rados -p test3 bench 10 seq
rados -p test3 bench 10 write --no-cleanup

容量是几个副本就除几,例如 300G 3个副本,可用空间是100G

HA、迁移、备份、云桌面略

故障恢复:

https://blog.51cto.com/yuweibing/2306831

https://blog.51cto.com/sery/2324067?tdsourcetag=s_pcqq_aiomsg

https://blog.51cto.com/6222666/2161875

https://www.zhangziran.com/proxmox-cluster-manager.htm

「真诚赞赏,手留余香」

Uwei

请我喝杯咖啡?

使用微信扫描二维码完成支付

相关文章