KVM磁盘扩容

前言:当我们创建的虚拟机磁盘容量不够我们使用的时候。我们就需要对虚拟机的磁盘进行扩容
而我们的虚拟机的某一个磁盘正在使用 ,如是直接添加一个大的硬盘,则需要把原原来磁盘的文件copy到新的磁盘上,耗费时间,还会出错。
我们可以从LVM方面入手,给已经没有存储空间的硬盘进行扩容。直接把硬盘的容量变大

1.实验目的

我们虚拟机test01的磁盘可用为36G 实现 / 的容量变大

[root@test01 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        37G 1007M   36G    3% /
devtmpfs                devtmpfs  908M     0  908M    0% /dev
tmpfs                   tmpfs     920M     0  920M    0% /dev/shm
tmpfs                   tmpfs     920M  8.6M  911M    1% /run
tmpfs                   tmpfs     920M     0  920M    0% /sys/fs/cgroup
/dev/vda1               xfs      1014M  145M  870M   15% /boot
tmpfs                   tmpfs     184M     0  184M    0% /run/user/0


2.实验步骤

2.1 创建一个qcwo2 的数据磁盘

大小为10G

[root@itzfl vdisks]# qemu-img create -f qcow2 /kvm/vdisks/test01_data.qcow2 -o size=10G,preallocation=metadata
Formatting '/kvm/vdisks/test01_data.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 preallocation='metadata' lazy_refcounts=off 
[root@itzfl vdisks]# ls
template.raw  test01_data.qcow2  test01.qcow2
[root@itzfl vdisks]# 

2.2 test01_data.qcow2绑定到test01虚拟机

[root@itzfl vdisks]# virsh attach-disk test01  /kvm/vdisks/test01_data.qcow2 vdb --live --config
成功附加磁盘

[root@itzfl vdisks]# 

2.3 查看磁盘信息

[root@itzfl vdisks]# virsh domblklist test01
目标     源
------------------------------------------------
vda        /kvm/vdisks/test01.qcow2
vdb        /kvm/vdisks/test01_data.qcow2
hda        -

[root@itzfl vdisks]# 

3.实现在虚拟机的扩容

[root@test01 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1 1024M  0 rom  
vda             252:0    0   40G  0 disk 
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0   39G  0 part 
  ├─centos-root 253:0    0   37G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
vdb             252:16   0   10G  0 disk 
[root@test01 ~]# 

3.1 对新添加的磁盘进行分区

[root@test01 ~]# fdisk /dev/vdb 
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x72bd196c 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-20975231,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20975231,默认为 20975231):
将使用默认值 20975231
分区 1 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@test01 ~]# 

3.2 创建pv

[root@test01 ~]# pvcreate /dev/vdb1
  Physical volume "/dev/vdb1" successfully created.
[root@test01 ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/vda2  centos lvm2 a--  <39.00g  4.00m
  /dev/vdb1         lvm2 ---   10.00g 10.00g

3.3 扩容原理

[root@test01 ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 36.99g                                                    
  swap centos -wi-ao----  2.00g                                                    
[root@test01 ~]# 

lvm的扩容首先需要在卷组上面扩容 本次实现我们扩容的是 root这个逻辑卷

3.4 查看vg

[root@test01 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <39.00g 4.00m
[root@test01 ~]# 

3.5 vg(centos)的扩容

[root@test01 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <39.00g 4.00m

[root@test01 ~]# vgextend centos /dev/vdb1
  Volume group "centos" successfully extended

[root@test01 ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  centos   2   2   0 wz--n- 48.99g 10.00g
[root@test01 ~]# 

3.6 lv(root)的扩容

[root@test01 ~]# lvextend -l +2560 /dev/centos/root
  Size of logical volume centos/root changed from 36.99 GiB (9470 extents) to 46.99 GiB (12030 extents).
  Logical volume centos/root successfully resized.
[root@test01 ~]# 

3.7 lvs扩容成功后需要刷新磁盘

[root@test01 ~]# xfs_growfs /
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=2424320 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=9697280, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=4735, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 9697280 to 12318720

3.8 查看磁盘大小

[root@test01 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        47G 1007M   46G    3% /
devtmpfs                devtmpfs  908M     0  908M    0% /dev
tmpfs                   tmpfs     920M     0  920M    0% /dev/shm
tmpfs                   tmpfs     920M  8.6M  911M    1% /run
tmpfs                   tmpfs     920M     0  920M    0% /sys/fs/cgroup
/dev/vda1               xfs      1014M  145M  870M   15% /boot
tmpfs                   tmpfs     184M     0  184M    0% /run/user/0

总结 : kvm虚拟机的扩容
物理机:
首先创建一个虚拟磁盘 并且与虚拟机进行绑定
虚拟机:
将添加进来的硬盘,分区,创建物理卷 切记不可创建卷组 ,逻辑卷。
因为我们需要扩容的磁盘肯定已经存在逻辑卷 卷组
我们先要对卷组扩容,在通过卷组对逻辑卷进行扩容

你可能感兴趣的:(linux,linux,运维,centos)