centos虚拟机扩容---后续学习

4、创建逻辑卷(LVM):
     命令lvcreate的常用方法: 
   lvcreate [options]  -n 逻辑卷名  卷组名 
   其中的常用可选项有: 
   "-i Stripes :采用交错(striped)方式创建LV,其中Stripes指卷组中PV的数量。 
   "-I Stripe_size :采用交错方式时采用的块大小(单位为KB),Stripe_size必须为2的指数:2N ,N=2,3...9。 
   "-l LEs :指定LV的逻辑块数。 
   "-L size :指定LV的大小,其后可以用K、M、G表示KB、MB、GB。 
   "-s :创建一已存在LV的snapshot卷。 
   "-n name :为LV指定名称。
   创建普通LV:   
    lvcreate -L 5G -n lv01 vg01  创建一个名为lv01的5G 虚拟分区在虚拟硬盘vg01上   /dev/vg01/lv01
    lvcreate -i 4 -I 8 -L 4G -n lv02  vg01  [-i 是VG中组成PV的分区个数,-I 块大小,-L LV的大小]
   创建快照LV:
    lvcreate -s -i 4 -I 16 -L 2G -n lv03_snapshot vg01




lvextend命令 用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。使用lvextend命令动态在线扩展磁盘空间,整个空间扩展过程对于应用程序来说是完全透明的。
语法
lvextend(选项)(参数)
选项
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;-l:指定逻辑卷的大小(LE数)。
参数
逻辑卷:指定要扩展空间的逻辑卷。
实例
使用lvextend命令为逻辑卷 /dev/vg1000/lvol0 增加100M空间。在命令行中输入下面的命令:
[root@localhost ~]# lvextend -L +100M /dev/vg1000/lvol0 #为了解决增加100M空间
输出信息如下:
Extending logical volume lvol0 to 300.00 MB Logical volume lvol0 successfully resized



lvextend -L +20G /dev/mapper/centos-root
在使用这个命令的时候会出错:
因此遇到的情况和解决的方案如下:
【LVM】Insufficient Free Extents for a Logical Volume
原创  2014年02月22日 00:24:48
创建逻辑卷的时候,出现:Insufficient free extents (5119) in volume group vg1: 5120 required。
看提示是表示volume group的可用空间不够了!
回顾下刚才创建逻辑卷的命令:

再看下卷组的空间是多少:

可以看到卷组的可用空间是20G, 为什么创建卷的时候提示空间不够?

下面执行vgdisplay命令:

可以看到可用的PE数量是5119,而每个PE大小是4.00MiB,所以其实这个卷组实际的可用空间其实不是20G,而是19.99G。

所以创建卷的命令改成lvcreate -L 19.99g -n volume1 vg1就可以创建成功了。
这个命令类似于:lvextend -L 19.99g vg1(VG Name 这个地方是有争议的这个博客里写的是直接添加到vg里,按照下图也说的没错,但是我在另外一片博客里找到这里应该是 lvextend -L +20G /dev/mapper/centos-root 而这个并不是我电脑上vgdisplay vg的name,我电脑上vgdisplay vg的name此时是centos  解释是:指定扩展多大的空间到lv中去,后面的/dev/mapper/centos-root是指定扩展的文件位置,可在 df   -h中看见,这个命令一定正确,但是我觉得 lvextend -L 19.99g -n volume1 vg1 也不应该错 ),


于是我查阅相关资料得出了一下结论:
/dev/mapper/centos-root


二、/dev/mapper目录的解释
   为了方便叙述,假设一台服务器有三块硬盘分别为a,b,c,每块硬盘的容量为1T。在安装Linux的时候,先根据系统及自身的需要建立基本的分区,假设对硬盘a进行了分区,分出去了0.1T的空间挂载在/boot目录下,其他硬盘未进行分区。系统利用Device mapper机制建立了一个卷组(volume group,VG),你可以把VG当做一个资源池来看待,最后在VG上面再创建逻辑卷(logical volume,LV)。若要将硬盘a的剩余空间、硬盘b和硬盘c都加入到VG中,则硬盘a的剩余空间首先会被系统建立为一个物理卷(physical volume,PV),并且这个物理卷的大小就是0.9T,之后硬盘a的剩余的空间、硬盘b和硬盘c以PV的身份加入到VG这个资源池中,然后你需要多大的空间,就可以从VG中划出多大的空间(当然最大不能超过VG的容量)。比如此时池中的空间就是2.9T,此时你就可以建立一个1T以上的空间出来,而不像以前最大的容量空间只能为1T。
   /dev/mapper/Volume-lv_root的意思是说你有一个VG (volume group卷组)叫作Volume, 这个Volume里面有一个LV叫作lv_root。其实这个/dev/mapper/Volume-lv_root文件是一个连接文件,是连接到/dev/dm-0的,你可以用命令ll /dev/mapper/Volume-lv_root进行查看。
   其实在系统里/dev/Volume/lv_root 和 /dev/mapper/Volume-lv_root以及/dev/dm-0都是一个东西,都可当作一个分区来对待。
   若要了解硬盘的具体情况,可通过fdisk或者pvdisplay命令进行查看。
   若你想要重装系统到/dev/sda下,且安装时有些东西不想被格式化想转移到/dev/sdb下,但此时/dev/sda和/dev/sdb被放到VG中了,那该如何解决该问题呢?这种情况下,由于此时根本没办法确定数据在哪一个硬盘上,因为这两个硬盘就如同加到池里,被Device mapper管理,所以解决方案就是再建个逻辑卷出来,把数据移到新的卷里,这样你就可以重装系统时只删掉之前分区里的东西,而新的卷里的东西不动,就不会丢失了。

所以对于 /dev/mapper/centos-root 的解释:相当于有一个vg(vg name = centos,用vgdisplay查看确实如此)





然后这个vg下有lv(逻辑卷):root (lv name, 用lvdisplay也能看到 )




也就是说本次的lvextend命令是 lvextend -L +20G /dev/mapper/centos-root
参照下方:
lvextend(选项)(参数)
选项
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;-l:指定逻辑卷的大小(LE数)。
参数
逻辑卷:指定要扩展空间的逻辑卷。

将lv扩展到vg下的root逻辑卷
所以lv扩展完成


但是lvcreate和lvextend命令不同,
    命令lvcreate的常用方法: 
   lvcreate [options]  -n 逻辑卷名  卷组名 

注意区分 lvcreate相当于在相应的vg下创建-n后面的逻辑卷名
而lvextend后的参数说明相当于在指定vg:centos下扩展lv : root,所以 /dev/mapper/centos-root 更像一个链接文件,链接着centos(vg)卷组下的逻辑卷.





至于为什么要把lv扩展到vg上请看下图

 pv、vg、lv的意思


物理卷(Physical Volume,PV):就是指硬盘分区,也可以是整个硬盘或已创建的软RAID,是LVM的基本存储设备。
卷组(Volume Group,VG):是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个逻辑卷。
逻辑卷(Logical Volume,LV):类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统。
1.首先查看我们的根分区大小是多少
1
2
3
4
5
6
7
8
9
10
[root@localhost ~] # df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        18G  1.1G   17G    6% /
devtmpfs                devtmpfs  479M     0  479M    0% /dev
tmpfs                   tmpfs     489M     0  489M    0% /dev/shm
tmpfs                   tmpfs     489M  6.7M  483M    2% /run
tmpfs                   tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda1               xfs       497M  125M  373M   25% /boot
tmpfs                   tmpfs      98M     0   98M    0% /run/user/0<br>
可以看到我们的根分区大小为17G
 2.添加一块物理的磁盘。在虚拟机中添加
 3.查看磁盘编号
1
ls  /dev/sd*<br>/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb<br>可以看到sdb就是我们刚才添加的磁盘
 4.创建pv
1
2
[root@localhost ~] # pvcreate /dev/sdb
  Physical volume  "/dev/sdb"  successfully created
 5.把pv加入vg中,相当于扩充vg的大小
    先使用vgs查看vg组
1
2
3
4
[root@localhost ~] # vgs
  VG      #PV #LV #SN Attr   VSize  VFree
  centos   1   2   0 wz--n- 19.51g 40.00m<br>
可以看到现在就一个vg组其中有两个lv卷,若不确定可以通过lvs查看是否是我们需要扩展的分区<br>[root@localhost ~] # lvs<br>  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert<br>  root centos -wi-ao---- 17.47g                                                    <br>  swap centos -wi-ao----  2.00g                                                    <br>可以看到这就是我们需要扩展的根分区,我这里还有个swap分区
 扩展vg,使用vgextend命令
1
2
3
[root@localhost ~] # vgextend centos /dev/sdb
  Volume group  "centos"  successfully extended
vgextend名字命令接的vg的名字,后面是磁盘的位置
 6.我们成功把vg卷扩展了,在用vgs查看一下
1
2
3
4
5
6
7
[root@localhost ~] # vgs
  VG      #PV #LV #SN Attr   VSize  VFree
  centos   2   2   0 wz--n- 39.50g 20.04g
[root@localhost ~] # lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 17.47g                                                   
  swap centos -wi-ao----  2.00g  <br><br>虽然我们把vg扩展了,但是lv还没有扩展
7.扩展lv,使用lvextend命令
1
2
3
[root@localhost ~] # lvextend -L +20G /dev/mapper/centos-root
  Size of logical volume centos/root changed from 17.47 GiB (4472 extents) to 37.47 GiB (9592 extents).
  Logical volume root successfully resized.<br>-L 指定扩展多大的空间到lv中去,后面的/dev/mapper/centos-root是指定扩展的文件位置,可在 df  -h中看见
 查看lv大小
1
2
3
4
[root@localhost ~] # lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 37.47g                                                   
  swap centos -wi-ao----  2.00g  
 查看df  -h中变化没有
1
2
3
4
5
6
7
8
9
[root@localhost ~] # df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   18G  1.1G   17G    6% /
devtmpfs                 479M     0  479M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.7M  483M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/sda1                497M  125M  373M   25% /boot
tmpfs                     98M     0   98M    0% /run/user/0<br><br>没有变化。
 那么我们要使用[root@localhost ~]# xfs_growfs /dev/mapper/centos-root 命令使系统重新读取大小
1
2
3
4
5
6
7
8
9
10
11
[root@localhost ~] # xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=1144832 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=4579328, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
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 4579328 to 9822208
 再使用df  -h查看
1
2
3
4
5
6
7
8
9
[root@localhost ~] # df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   38G  1.1G   37G    3% /
devtmpfs                 479M     0  479M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.7M  483M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/sda1                497M  125M  373M   25% /boot
tmpfs                     98M     0   98M    0% /run/user/0
 到这里我们就成功扩展了。
 
 
 
备注:我们可以自行生产vg组以及在新的vg中生成lv
vgcreate       创建新的vg组
lvcreate        在新的vg中创建新的lv,但是要指定对vg名字
vgreduce      把pv从vg中移除,若vg中只有一个pv则直接使用vgremove

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值