Learning KVM - part6 挂载并扩容磁盘

这一章节我们将来探讨下如何热添加虚拟磁盘,热扩容虚拟磁盘。热添加、热扩容意味着您可以这些操作可以在虚拟机保持运行的状态下执行,而不必关闭或者暂停虚拟机。KVM支持挂载物理磁盘或者虚拟磁盘。为了创建虚拟磁盘,我们可以使用qemu-img命令工具创建“qcow2”或者“img”格式的虚拟磁盘。当然使用强大的dd命令去创建一个非稀疏格式的的磁盘也是一个不错的选择。


为虚拟机挂载SAN/SCSI物理磁盘

  1. 为宿主机挂载物理磁盘“sdb”;
[root@test-kvm images]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  436K  0 rom  
vda    253:0    0   20G  0 disk 
└─vda1 253:1    0   20G  0 part /
sdb    253:16   0    1G  0 disk 
  1. 查看vm当前磁盘映射关系;
[root@test-kvm images]# virsh list
Id    Name                           State
----------------------------------------------------
 1     generic                        running
 4     centos7                        running

[root@test-kvm images]# virsh domblklist centos7 --details
Type       Device     Target     Source
------------------------------------------------
file       disk       vda        /var/lib/libvirt/images/centos7.img
file       cdrom      hda        -
  1. 将“sdb”挂载到虚拟机的“vdb”磁盘上;
[root@test-kvm images]# virsh attach-disk centos7 --source /dev/sdb --target vdb --persistent
Disk attached successfully

[root@test-kvm images]# virsh domblklist centos7 --details
Type       Device     Target     Source
------------------------------------------------
file       disk       vda        /var/lib/libvirt/images/centos7.img
block      disk       vdb        /dev/sdb
file       cdrom      hda        -
  1. 登录到虚拟机验证挂载情况;
[root@test-kvm images]# virsh console centos7
Connected to domain centos7
Escape character is ^]

CentOS Linux 7 (Core)
Kernel 3.10.0-514.el7.x86_64 on an x86_64

localhost login: root
Password: 
Last login: Tue Jun 13 11:22:34 on ttyS0
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1 1024M  0 rom  
vda         252:0    0   10G  0 disk 
├─vda1      252:1    0    1G  0 part /boot
└─vda2      252:2    0    9G  0 part 
  ├─cl-root 253:0    0    8G  0 lvm  /
  └─cl-swap 253:1    0    1G  0 lvm  [SWAP]
vdb         252:16   0    1G  0 disk 

创建并挂载虚拟磁盘:

  1. 创建虚拟磁盘,我们可以使用qemu-imgdd命令创建虚拟磁盘。
_请留意我们在创建“qcow2”格式磁盘的时候使用了“preallocation=metadata”选项,如果不适用预分配格式,挂载的虚拟磁盘将读取不到设置的大小_
[root@test-kvm images]# qemu-img create -f qcow2 -o preallocation=metadata centos7.disk1.qcow2 1G
Formatting 'centos7.disk1.qcow2', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 preallocation='metadata'  lazy_refcounts=off 
[root@test-kvm images]# qemu-img create -f raw centos7.disk2.img 256M
Formatting 'centos7.disk2.img', fmt=raw size=268435456 
[root@test-kvm images]# dd if=/dev/zero of=centos7.disk3.img bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 0.792503 s, 1.3 GB/s
[root@test-kvm images]# ll centos7.disk*
-rw-r--r-- 1 root root 1074135040 Jun 13 13:57 centos7.disk1.qcow2
-rw-r--r-- 1 root root  268435456 Jun 13 13:57 centos7.disk2.img
-rw-r--r-- 1 root root 1048576000 Jun 13 13:58 centos7.disk3.img
  1. 挂载创建的虚拟磁盘;
[root@test-kvm images]# virsh attach-disk centos7 --source /var/lib/libvirt/images/centos7.disk1.qcow2 --target vdb --persistent
Disk attached successfully

[root@test-kvm images]# virsh attach-disk centos7 --source /var/lib/libvirt/images/centos7.disk2.img --target vdc --persistent
Disk attached successfully

[root@test-kvm images]# virsh attach-disk centos7 --source /var/lib/libvirt/images/centos7.disk3.img --target vdd --persistent
Disk attached successfully

热扩容虚拟磁盘

  1. 格式化、mount虚拟磁盘;
[root@localhost ~]# mkdir /storage
[root@localhost /]# mkfs.xfs /dev/vdb
meta-data=/dev/vdb               isize=512    agcount=4, agsize=65560 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=262240, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost /]# mount /dev/vdb /storage
[root@localhost /]# mount -v | grep storage
/dev/vdb on /storage type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
  1. 查看已挂载的虚拟磁盘信息,找到“vdb”的block id;
[root@test-kvm images]# virsh domblklist centos7 --details
Type       Device     Target     Source
------------------------------------------------
file       disk       vda        /var/lib/libvirt/images/centos7.img
file       disk       vdb        /var/lib/libvirt/images/centos7.disk1.qcow2
file       disk       vdc        /var/lib/libvirt/images/centos7.disk2.img
file       disk       vdd        /var/lib/libvirt/images/centos7.disk3.img

[root@test-kvm images]# virsh pool-list
 Name                 State      Autostart 
-------------------------------------------
 default              active     yes       

[root@test-kvm images]# virsh vol-list default
 Name                 Path                                    
------------------------------------------------------------------------------
 CentOS-7-x86_64-Minimal-1611.iso /var/lib/libvirt/images/CentOS-7-x86_64-Minimal-1611.iso
 centos7.disk1.qcow2  /var/lib/libvirt/images/centos7.disk1.qcow2
 centos7.disk2.img    /var/lib/libvirt/images/centos7.disk2.img
 centos7.disk3.img    /var/lib/libvirt/images/centos7.disk3.img
 centos7.img          /var/lib/libvirt/images/centos7.img     
 cirros-0.3.4-x86_64-disk.img /var/lib/libvirt/images/cirros-0.3.4-x86_64-disk.img

[root@test-kvm images]# virsh qemu-monitor-command centos7 --hmp "info block"
drive-virtio-disk0: removable=0 io-status=ok file=/var/lib/libvirt/images/centos7.img ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0   bps_wr=0 iops=0 iops_rd=0 iops_wr=0
drive-virtio-disk1: removable=0 io-status=ok file=/var/lib/libvirt/images/centos7.disk1.qcow2 ro=0 drv=raw encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0
drive-virtio-disk2: removable=0 io-status=ok file=/var/lib/libvirt/images/centos7.disk2.img ro=0 drv=raw encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0
drive-virtio-disk3: removable=0 io-status=ok file=/var/lib/libvirt/images/centos7.disk3.img ro=0 drv=raw encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0
  1. 下面我们来为“vdb”扩容;
__注意不要减少虚拟磁盘的大小,这是不允许的,有可能会造成数据的丢失__
[root@test-kvm images]# virsh qemu-monitor-command centos7 --hmp "block_resize drive-virtio-disk1 2G"
  1. 现在虚拟磁盘的大小已经扩展到2G,但是要想使用这些扩容的容量,我们需要登录到虚拟机使用命令xfs_growfs调整一下挂载文件的大小。
[root@test-kvm images]# virsh console centos7
Connected to domain centos7
Escape character is ^]

[root@localhost /]# lsblk | grep vdb
vdb         252:16   0    2G  0 disk /storage
[root@localhost /]# df -h /storage/
Filesystem      Size  Used Avail Use% Mounted on
/dev/vdb       1015M   33M  983M   4% /storage
[root@localhost /]# mount -v | grep storage
/dev/vdb on /storage type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
[root@localhost /]# xfs_growfs /storage/
meta-data=/dev/vdb               isize=512    agcount=4, agsize=65560 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=262240, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262240 to 524288
[root@localhost /]# df -h /storage/
Filesystem      Size  Used Avail Use% Mounted on
/dev/vdb        2.0G   33M  2.0G   2% /storage
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容