文章目录
- 4.7 kvm虚拟机克隆
- 4.7.1 完整克隆
- 4.7.2 链接克隆
- 4.8 kvm虚拟机的桥接网络
- 4.8.1 创建桥接网卡
- 4.8.2 新虚拟机使用桥接模式
- 4.8.3 将已有虚拟机网络修改为桥接模式
- 4.9 热添加技术
- 4.9.1 kvm热添加硬盘
- 4.9.2 kvm虚拟机在线热添加网卡
- 4.9.3 kvm虚拟机在线热添加内存
- 4.9.4 kvm虚拟机在线热添加cpu
- 4.10 kvm虚拟机热迁移(共享的网络文件系统)
- 5.1 用脚本自动化部署openstack M版
4.7 kvm虚拟机克隆
4.7.1 完整克隆
自动挡:
virt-clone --auto-clone -o web01 -n web02 (完整克隆)
手动挡:
qemu-img convert -f qcow2 -O qcow2 -c web01.qcow2 web03.qcow2
virsh dumpxml web01 >web02.xml
vim web02.xml
#修改虚拟机的名字
#删除虚拟机uuid
#删除mac地址mac add
#修改磁盘路径disk
virsh define web02.xml
virsh start web02
4.7.2 链接克隆
a:生成虚拟机磁盘文件
qemu-img create -f qcow2 -b web01.qcow2 web04.qcow2
b:生成虚拟机的配置文件
virsh dumpxml web01 >web03.xml
vim web03.xml
#修改虚拟机的名字
web03
#删除虚拟机uuid
8e505e25-5175-46ab-a9f6-feaa096daaa4
#删除mac地址
#修改磁盘路径
virsh define web03.xml
virsh start web03
全自动链接克隆脚本:
[root@kvm01 scripts]# cat link_clone.sh
#!/bin/bash
old_vm=$1
new_vm=$2
#a:生成虚拟机磁盘文件
old_disk=virsh dumpxml $old_vm|grep "<source file"|awk -F"'" '{print $2}'
disk_tmp=dirname $old_disk
qemu-img create -f qcow2 -b $old_disk
d
i
s
k
t
m
p
/
{disk_tmp}/
disktmp/{new_vm}.qcow2
#b:生成虚拟机的配置文件
virsh dumpxml
o
l
d
v
m
>
/
t
m
p
/
old_vm >/tmp/
oldvm>/tmp/{new_vm}.xml
#修改虚拟机的名字
sed -ri "s#()(.*)()#\1KaTeX parse error: Undefined control sequence: \3 at position 9: {new_vm}\̲3̲#g" /tmp/{new_vm}.xml
#删除虚拟机uuid
sed -i ‘//d’ /tmp/KaTeX parse error: Expected 'EOF', got '#' at position 14: {new_vm}.xml #̲删除mac地址 sed -i …{new_vm}.xml
#修改磁盘路径
sed -ri “s#()#\1
d
i
s
k
t
m
p
/
{disk_tmp}/
disktmp/{new_vm}.qcow2\3#g” /tmp/KaTeX parse error: Expected 'EOF', got '#' at position 14: {new_vm}.xml #̲c:导入虚拟机并进行启动测试 …{new_vm}.xml
virsh start ${new_vm}
4.8 kvm虚拟机的桥接网络
默认的虚拟机网络是NAT模式,网段192.168.122.0/24
4.8.1 创建桥接网卡
创建桥接网卡命令
virsh iface-bridge eth0 br0
取消桥接网卡命令
virsh iface-unbridge br0
4.8.2 新虚拟机使用桥接模式
默认NAT模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
桥接模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
问题1:
如果虚拟机获取不到ip地址:
4.8.3 将已有虚拟机网络修改为桥接模式
a:关机状态下修改虚拟机配置文件:
例如:virsh edit centos7
b:启动虚拟机,测试虚拟机网络如果上层没有开启dhcp,需要手动配置ip地址,IPADDR,NATMASK.GATEWAY,DNS1=180.76.76.76
4.9 热添加技术
热添加硬盘、网卡、内存、cpu
4.9.1 kvm热添加硬盘
临时立即生效
virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2
永久生效(需要重启)
virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2 --config
临时剥离硬盘
virsh detach-disk web01 vdb
永久剥离硬盘
virsh detach-disk web01 vdb --config
扩容:
在虚拟机里把扩容盘的挂载目录,卸载掉
在宿主机上剥离硬盘virsh detach-disk web01 vdb
在宿主机上调整容量qemu-img resize
在宿主机上再次附加硬盘virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2
在虚拟机里再次挂载扩容盘
在虚拟机里用xfs_growfs更新扩容盘超级块信息
4.9.2 kvm虚拟机在线热添加网卡
virsh attach-interface web04 --type bridge --source br0 --model virtio
virsh attach-interface web04 --type bridge --source br0 --model virtio --config
virsh detach-interface web04 --type bridge --mac 52:54:00:35:d3:71
4.9.3 kvm虚拟机在线热添加内存
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
临时热添加内存
virsh setmem web04 1024M
永久增大内存
virsh setmem web04 1024M --config
调整虚拟机内存最大值
virsh setmaxmem web04 4G #默认永久
4.9.4 kvm虚拟机在线热添加cpu
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
热添加cpu核数
virsh setvcpus web04 4
永久添加cpu核数
virsh setvcpus web04 4 --config
调整虚拟机cpu的最大值
virsh setvcpus web01 --maximum 4 --config
4.10 kvm虚拟机热迁移(共享的网络文件系统)
冷迁移kvm虚拟机:配置文件,磁盘文件
热迁移kvm虚拟机:配置文件,nfs共享
kvm虚拟机热迁移
1:两边的环境(桥接网卡)
主机名 ip 内存 网络 软件需求 虚拟化
kvm01 10.0.0.11 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化
kvm02 10.0.0.12 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化
nfs01 10.0.0.31 1G 无 nfs 无
2:实现共享存储(nfs)
yum install nfs-utils rpcbind -y
vim /etc/exports
/data 10.0.0.0/24(rw,async,no_root_squash,no_all_squash)
systemctl start rpcbind nfs
#kvm01和kvm02
mount -t nfs 10.0.0.11:/data /data
3:在线热迁移
#临时迁移
virsh migrate --live --verbose web04 qemu+ssh://10.0.0.11/system --unsafe
#永久迁移
virsh migrate --live --verbose web03 qemu+ssh://10.0.0.11/system --unsafe --persistent --undefinesource
5.kvm管理平台
kvm宿主机 2000台
查看每一个宿主机有多少台虚拟机?
查看每一个宿主机还剩多少资源?
查看每一台宿主机,每一个虚拟机的ip地址?
excel 资产管理 cmdb
kvm管理平台,数据库工具
信息:宿主机,总配置,剩余的总配置
虚拟机的信息,配置信息,ip地址,操作系统
带计费功能的kvm管理平台,openstack ceilometer计费 ecs IAAS层
自动化管理kvm宿主机,云主机定制化操作
5.1 用脚本自动化部署openstack M版
部署openstack
克隆一台openstack模板机:
all-in-one环境
4G内存,开启虚拟化,挂载centos7.6的光盘
虚拟机开机之后,修改ip地址为10.0.0.11
上传脚本openstack-mitaka-autoinstall.sh到/root目录
上传镜像:cirros-0.3.4-x86_64-disk.img到/root目录
上传配置文件:local_settings到/root目录
上传openstack_rpm.tar.gz到/root下,
tar xf openstack_rpm.tar.gz -C /opt/
mount /dev/cdrom /mnt
sh /root/openstack-mitaka-autoinstall.sh
大概10-30分钟左右
访问http://10.0.0.11/dashboard
域:default
用户名:admin
密码:ADMIN_PASS
注意: 在windows系统上修改host解析(10.0.0.11 controller)
添加node节点:
修改ip地址10.0.0.12
hostnamectl set-hostname compute1
重新登录让新主机名生效
上传openstack_rpm.tar.gz到/root下,
tar xf openstack_rpm.tar.gz -C /opt/
mount /dev/cdrom /mnt
上传脚本openstack_compute_install.sh
sh openstack_compute_install.sh
openstack controller主控制节点,node节点, kvm宿主机
node节点, kvm宿主机
node节点, kvm宿主机
node节点, kvm宿主机