28.12 磁盘扩容(raw)linux
28.13 磁盘扩容(qcow2)vim
28.14 调整cpu内存和网卡安全
28.15 迁移虚拟机bash
28.12 磁盘扩容(raw)网络
针对一块已经存在的盘进行增长容量app
1.qemu-img resize /kvm_data/aminglinux02_3.raw +2Gdom
2.qemu-img info /kvm_data/aminglinux02_3.rawide
3.virsh destroy aminglinux02oop
4.virsh start aminglinux02ui
5.virsh console aminglinux02
6.fdisk -l 查看磁盘状况,并分新的分区
#如何利用上增长的2G空间,给他放到/dev/vda1里面去。能够从新分区,就是增长一个分区(原先的分区不要破坏,直接加上这2G空间)fisk /dev/sda而后按n,增长一个
7.除了对已有磁盘扩容外,还能够额外增长磁盘 #针对于标准分区的
qemu-img create -f raw /kvm_data/aminglinux02_2.raw 5G
virsh edit aminglinux02 //增长<disk>…</disk>,注意更改source、target、slot
virsh destroy aminglinux02
virsh start aminglinux02
实例:
[root@axinlinux-01 ~]# cd /kvm_data/
[root@axinlinux-01 kvm_data]# ls
aminglinux01_2.img aminglinux01.img aminglinux02_3.raw aminglinux02.img lost+found
[root@axinlinux-01 kvm_data]# qemu-img resize /kvm_data/aminglinux02_3.raw +2G #给这块磁盘加2G
Image resized.
[root@axinlinux-01 kvm_data]# qemu-img info /kvm_data/aminglinux02_3.raw #查看一下这块磁盘
[root@axinlinux-01 kvm_data]# qemu-img info /kvm_data/aminglinux02_3.raw image: /kvm_data/aminglinux02_3.raw file format: raw virtual size: 12G (12884901888 bytes) disk size: 2.6G
[root@axinlinux-01 kvm_data]# virsh start aminglinux02 #开启
域 aminglinux02 已开始
[root@axinlinux-01 kvm_data]# virsh console aminglinux02 #进入
[root@localhost ~]# fdisk -l #进入查看一下分区磁盘大小。由于阿鑫是重启后加的2G(虚拟机处于关机状态),因此这里直接显示了加2G空间以后的。正常加完空间,须要重启一下,先shutdown在start
磁盘 /dev/vda:12.9 GB, 12884901888 字节,25165824 个扇区 #此时变成了12G Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000f3221 设备 Boot Start End Blocks Id System /dev/vda1 * 2048 2099199 1048576 83 Linux /dev/vda2 2099200 4196351 1048576 82 Linux swap / Solaris /dev/vda3 4196352 20971519 8387584 83 Linux
[root@localhost ~]# fdisk /dev/vda #分区,将这2G的空间分区分进去
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n #按 n ,增长一个分区
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): p #增长一个主分区
已选择分区 4
起始 扇区 (20971520-25165823,默认为 20971520): #默认就是从开头开始的
将使用默认值 20971520
Last 扇区, +扇区 or +size{K,M,G} (20971520-25165823,默认为 25165823): #在结尾结束的
将使用默认值 25165823
分区 4 已设置为 Linux 类型,大小设为 2 GiB #默认就分了这2G
命令(输入 m 获取帮助):p #最后再查看一些分区
磁盘 /dev/vda:12.9 GB, 12884901888 字节,25165824 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000f3221 设备 Boot Start End Blocks Id System /dev/vda1 * 2048 2099199 1048576 83 Linux /dev/vda2 2099200 4196351 1048576 82 Linux swap / Solaris /dev/vda3 4196352 20971519 8387584 83 Linux /dev/vda4 20971520 25165823 2097152 83 Linux #咱们刚刚分进去的
最后可按 w ,保存
以上增长分区,若是是lvm格式的。我么是能够增长逻辑卷来实现扩容。那标准分区的话,无法扩容,只能从新分区
[root@axinlinux-01 kvm_data]# qemu-img create -f raw /kvm_data/aminglinux02_2.raw 5G #回到宿主机,增长一块新的磁盘
Formatting '/kvm_data/aminglinux02_2.raw', fmt=raw size=5368709120
[root@axinlinux-01 kvm_data]# qemu-img info aminglinux02_2.raw #查看
image: aminglinux02_2.raw file format: raw virtual size: 5.0G (5368709120 bytes) disk size: 0
[root@axinlinux-01 kvm_data]# virsh edit aminglinux02 #编辑02的配置文件
<disk type='file' device='disk'> <driver name='qemu' type='raw'/> <source file='/kvm_data/aminglinux02_3.raw'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk> <disk type='file' device='disk'> #复制上面的内容,再从新修改一下 <driver name='qemu' type='raw'/> <source file='/kvm_data/aminglinux02_2.raw'/> #这里改成上面新加磁盘的名字 <target dev='vdb' bus='virtio'/> #这里改成vdb <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> #这里的数字要跟上面的数字区分开 </disk>
[root@axinlinux-01 kvm_data]# virsh destroy aminglinux02 #关闭02.也能够shutdown
域 aminglinux02 被删除
[root@axinlinux-01 kvm_data]# virsh start aminglinux02 #从新开启02
域 aminglinux02 已开始
[root@axinlinux-01 kvm_data]# virsh console aminglinux02 #进入02
链接到域 aminglinux02
换码符为 ^] #此处按空格
CentOS Linux 7 (Core)
Kernel 3.10.0-693.el7.x86_64 on an x86_64
localhost login: root
密码:
Last login: Tue Jan 8 23:44:40 on ttyS0
[root@localhost ~]# fdisk -l #查看分区
磁盘 /dev/vda:12.9 GB, 12884901888 字节,25165824 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000f3221 设备 Boot Start End Blocks Id System /dev/vda1 * 2048 2099199 1048576 83 Linux /dev/vda2 2099200 4196351 1048576 82 Linux swap / Solaris /dev/vda3 4196352 20971519 8387584 83 Linux 磁盘 /dev/vdb:5368 MB, 5368709120 字节,10485760 个扇区 #看这是否是多了一块磁盘。能够针对这块磁盘分区、挂载 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节
以上是,标准分区下,若是利用加进去的磁盘
可是在生产环境中,不少公司用的是云主机。当咱们磁盘不够的时候,都是再买一块云盘。相似于你增长了一块盘,咱们能够分区、挂载就能够了
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28.13 磁盘扩容(qcow2)
1.qemu-img resize /kvm_data/aminglinux01.img +2G
若提示qemu-img: Can't resize an image which has snapshots,须要删除快照
2.qemu-img info /kvm_data/aminglinux01.img
3.virsh destroy aminglinux01
4.virsh start aminglinux01
5.virsh console aminglinux01
6.fdisk -l 查看磁盘状况,并分新的分区
除了对已有磁盘扩容外(以上),还能够额外增长磁盘(如下)
1.qemu-img create -f qcow2 /kvm_data/aminglinux01_2.img 5G
2.virsh edit aminglinux01 //增长<disk>…</disk>,注意更改source、target、slot
3.virsh destroy aminglinux01
4.virsh start aminglinux01
实例:
[root@axinlinux-01 kvm_data]# qemu-img resize /kvm_data/aminglinux01.img +2G #会报错要删除快照
qemu-img: Can't resize an image which has snapshots qemu-img: This image does not support resize
[root@axinlinux-01 kvm_data]# virsh snapshot-list aminglinux01 #查一下01的快照
名称 生成时间 状态 ------------------------------------------------------------ 1561629728 2019-06-27 18:02:08 +0800 shutoff 1561630057 2019-06-27 18:07:37 +0800 shutoff
[root@axinlinux-01 kvm_data]# virsh snapshot-delete aminglinux01 1561629728 #删除01的快照
已删除域快照 1561629728
[root@axinlinux-01 kvm_data]# virsh snapshot-delete aminglinux01 1561630057 #删除01的快照
已删除域快照 1561630057
[root@axinlinux-01 kvm_data]# qemu-img resize /kvm_data/aminglinux01.img +2G #给01扩容2G
Image resized.
接下来跟raw扩容分区同样了。
[root@axinlinux-01 kvm_data]# virsh start aminglinux01 #开启01
域 aminglinux01 已开始
[root@axinlinux-01 kvm_data]# virsh list
Id 名称 状态 ---------------------------------------------------- 9 aminglinux02 running 10 aminglinux01 running
[root@axinlinux-01 kvm_data]# virsh console aminglinux01 #进入01
[root@localhost ~]# fdisk -l #查看一下分区
Disk /dev/vda: 12.9 GB, 12884901888 bytes, 25165824 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x00073e2d Device Boot Start End Blocks Id System /dev/vda1 * 2048 2099199 1048576 83 Linux /dev/vda2 2099200 4196351 1048576 82 Linux swap / Solaris /dev/vda3 4196352 20971519 8387584 83 Linux
[root@localhost ~]# fdisk /dev/vda #开始分区
命令(输入 m 获取帮助):n #按 n 增长一个分区
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): p #按 p 增长一个主分区
以上磁盘扩容方式完成
除了扩容,还能够直接增长一块新的磁盘,方式跟raw的同样
之后若是有这样的需求,建议字节增长一块新的磁盘的方式
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28.14 调整cpu内存和网卡
壹.修改配置文件的方式去调整内存和CPU:
1.virsh dominfo aminglinux01 //查看配置
2.virsh edit aminglinux01//更改以下部份内容
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>524288</currentMemory>
<vcpu placement='static' current='1'>2</vcpu>
3.virsh shutdown aminglinux01
4.virsh start aminglinux01
#此时再去查看就是更改以后的配置了
贰.在线调整,不须要重启(动态的):
1.virsh setmem aminglinux01 800m//动态调整内存 #也能够减少内存
2.virsh dumpxml aminglinux01 > /etc/libvirt/qemu/aminglinux01.xml//须要把配置写入到配置文件里
3.virsh setvcpus aminglinux01 2 //动态调整cpu数量 #不能够减少CPU数量
叁.增长网卡:
1.virsh domiflist aminglinux01//查看网卡
3.virsh attach-interface aminglinux01 --type bridge --source virbr0//增长一块新的网卡,并设置为nat网络模式(virbr0相似vmware的vmnet8),这里若是写--source br0,则网络模式为桥接
4.virsh dumpxml aminglinux01 > /etc/libvirt/qemu/aminglinux01.xml//须要把配置写入到配置文件里
注意:以上动态的调整CPU、内存、网卡,都须要重定向到配置文件,否则不会生效。 因此,咱们能够用第一种方式,直接去编辑配置文件
实例:
[root@axinlinux-01 kvm_data]# virsh dominfo aminglinux01 #若是想看详细的,能够看他的配置文件。以下条命令
Id: 1 名称: aminglinux01 UUID: 79005f12-8ccd-4fe4-bb64-b98b2be80cd2 OS 类型: hvm 状态: running CPU: 1 CPU 时间: 38.4s 最大内存: 1048576 KiB 使用的内存: 524288 KiB 持久: 是 自动启动: 禁用 管理的保存: 否 安全性模式: none 安全性 DOI: 0
[root@axinlinux-01 kvm_data]# virsh edit aminglinux01 #在这也能够看他的详细的配置文件
<domain type='kvm'>
<name>aminglinux01</name>
<uuid>79005f12-8ccd-4fe4-bb64-b98b2be80cd2</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>624288</currentMemory> #好比咱们把内存512m改为612m
<vcpu placement='static' current='2'>2</vcpu> #好比咱们把cpu使用核数改为2核
<os>
<domain type='kvm'>
<name>aminglinux01</name>
<uuid>ea3fd5d6-52fd-4764-8a2e-ab8b8ba38399</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>624288</currentMemory>
<vcpu placement='static'>2</vcpu>按照上面的改完,保存完会变回原来的文件。
[root@axinlinux-02 kvm_data]# virsh setmem aminglinux01 800m #动态的调整内存
[root@axinlinux-01 kvm_data]# virsh console aminglinux01 #进去01
链接到域 aminglinux01
换码符为 ^]
[root@localhost ~]# free -h #检查调整后的内存
total used free shared buff/cache available Mem: 768M 85M 572M 6.5M 110M 543M Swap: 1.0G 0B 1.0G
[root@axinlinux-02 kvm_data]# virsh setvcpus aminglinux01 1 #动态的减小CPU是不支持的
错误:不支持的配置:failed to find appropriate hotpluggable vcpus to reach the desired target vcpu count
[root@axinlinux-01 kvm_data]# virsh setvcpus aminglinux01 2 #动态的增长或等同于原先的数量是能够的
[root@axinlinux-01 kvm_data]# virsh setmem aminglinux01 500m #减小内存是能够的(减到500)
[root@axinlinux-01 kvm_data]# virsh dominfo aminglinux01 #查看一下
Id: 2 名称: aminglinux01 UUID: 79005f12-8ccd-4fe4-bb64-b98b2be80cd2 OS 类型: hvm 状态: running CPU: 2 CPU 时间: 42.8s 最大内存: 1048576 KiB 使用的内存: 512000 KiB 持久: 是 自动启动: 禁用 管理的保存: 否 安全性模式: none 安全性 DOI: 0
生产环境中不多减小他的配置,大部分是增长配置
[root@axinlinux-01 kvm_data]# virsh dumpxml aminglinux02 > /etc/libvirt/qemu/aminglinux01.xml #此处须要注意的是,咱们在动态的调整完配置之后,要重定向一下,就是保存到配置文件里。由于目前仍是在内存里
[root@axinlinux-01 kvm_data]# vim /etc/libvirt/qemu/aminglinux01.xml #完成以后,咱们在检查一下配置文件。此时配置文件是已经修改了。
[root@axinlinux-01 kvm_data]# virsh edit aminglinux01 #可是咱们以这种方式查看配置文件,他仍是以前的数据,并无修改。由于他是在内存里调用的,因此是以前的数据。咱们shuntdowm再start以后就会使调整总以后的了
[root@axinlinux-01 kvm_data]# virsh attach-interface aminglinux01 --type bridge --source virbr0 #增长一块网卡,source为桥接到那一块网卡上
[root@axinlinux-01 kvm_data]# virsh domiflist aminglinux01 #再来查看,就多了一块。桥接到了virbr0上去了
接口 类型 源 型号 MAC ------------------------------------------------------- vnet1 bridge br0 virtio 52:54:00:b1:0e:fb vnet2 bridge virbr0 rtl8139 52:54:00:dd:91:b8
[root@axinlinux-01 kvm_data]# virsh attach-interface aminglinux01 --type bridge --source br0 #也能够指定桥接到br0上
成功附加接口
[root@axinlinux-01 kvm_data]# virsh domiflist aminglinux01
接口 类型 源 型号 MAC
-------------------------------------------------------
vnet0 bridge br0 virtio 52:54:00:05:d6:07 #这两个br0至关因而vmware里面的桥接模式
vnet1 bridge virbr0 rtl8139 52:54:00:dd:d0:2b #这个virbr0至关因而vmware里面的NAT模式
vnet2 bridge br0 rtl8139 52:54:00:fe:07:85
[root@axinlinux-01 kvm_data]# virsh console aminglinux01 #咱们进去查看一下网卡
链接到域 aminglinux01
换码符为 ^]
[root@localhost ~]# ifconfig #他已经动态的获取了IP。并且已经不是br什么什么了,而是ens什么什么
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:b1:0e:fb brd ff:ff:ff:ff:ff:ff 3: ens8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:dd:91:b8 brd ff:ff:ff:ff:ff:ff inet 192.168.122.166/24 brd 192.168.122.255 scope global noprefixroute dynamic ens8 valid_lft 3443sec preferred_lft 3443sec inet6 fe80::1ce2:7a13:403:b333/64 scope link noprefixroute valid_lft forever preferred_lft forever 4: ens9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:7c:41:91 brd ff:ff:ff:ff:ff:ff inet 192.168.193.163/24 brd 192.168.193.255 scope global noprefixroute dynamic ens9 valid_lft 1712sec preferred_lft 1712sec inet6 fe80::36fe:4ee2:3d5:2cc0/64 scope link noprefixroute valid_lft forever preferred_lft forever
ens8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.122.7 netmask 255.255.255.0 broadcast 192.168.122.255 #这个就是NAT
inet6 fe80::4b05:cf1c:da77:73c2 prefixlen 64 scopeid 0x20<link>
ether 52:54:00:dd:d0:2b txqueuelen 1000 (Ethernet)
RX packets 70 bytes 5813 (5.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 77 bytes 7000 (6.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens9: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.208.138 netmask 255.255.255.0 broadcast 192.168.208.255 #这个就是桥接
inet6 fe80::fea8:51ce:f27:cdd6 prefixlen 64 scopeid 0x20<link>
ether 52:54:00:fe:07:85 txqueuelen 1000 (Ethernet)
RX packets 377 bytes 18737 (18.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 13 bytes 1454 (1.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 52:54:00:05:d6:07 txqueuelen 1000 (Ethernet)
RX packets 7893 bytes 414062 (404.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 452 bytes 39320 (38.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 452 bytes 39320 (38.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@axinlinux-01 kvm_data]# virsh dumpxml aminglinux01 > /etc/libvirt/qemu/aminglinux01.xml #此时配置依然在内存里,想要生效,也是要重定向到配置文件里去
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28.15 迁移虚拟机
迁移就是从这一台到另外一台,本机叫克隆
其实就是把.img文件或.raw拷贝到远程机器上去。还要把配置文件.xml文件拷贝到远程上去,而后再定义一下(define,就是可以virsh list出来)
该方式要确保虚拟机是关机状态
1.virsh shutdown aminglinux01
2.virsh dumpxml aminglinux01 > /etc/libvirt/qemu/aminglinux03.xml // 若是是远程机器,须要把该配置文件拷贝到远程机器上
3.virsh domblklist aminglinux01 //查看虚拟机磁盘所在目录
4.rsync -av /kvm_data/aminglinux01.img /kvm_data/aminglinux03.img //若是是迁移到远程,则须要把该磁盘文件拷贝到远程机器上
5.vi /etc/libvirt/qemu/aminglinux03.xml //由于是迁移到本机,配置文件用的是aminglinux01子机的配置,不改会有冲突,因此须要修改该文件,若是是远程机器不用修改
修改domname: <name>aminglinux03</name>
修改uuid(随便改一下数字,位数不要变)
修改磁盘路径
6.virsh define /etc/libvirt/qemu/aminglinux03.xml //定义新虚拟机
7.virsh list --all //会发现新迁移的aminglinux03子机