SECTION 10 逻辑卷管理

逻辑卷管理

    • 1. 概念
    • 2. 示例
      • 1. 向虚拟机centos-root扩展磁盘

1. 概念

逻辑卷管理器LVM(logical volume manager)是linux对磁盘分区进行管理的一种机制,能为已有的文件系统添加额外的空间。
物理卷PV:在逻辑卷的世界里,磁盘分区称为物理卷PV(physical volume),每个物理卷都映射到磁盘的特定物理分区
卷组VG:多个物理卷组成卷组VG(volume group),逻辑卷管理器将VG视为一个物理硬盘,实际上VG可能是由分布在多个物理硬盘上的多个物理分区组成,VG提供了一个创建逻辑分区的平台,而这些逻辑分区包含了文件系统。
逻辑卷LV:整个结构中最后一层是逻辑卷LV(logical volume),为创建文件系统提供了分区环境,linux视逻辑卷为物理分区。

LVM缺点:单个硬盘损坏,会造成多个逻辑卷无法访问
LVM2引入快照,条带化,镜像

使用LVM流程
通过fdisk创建LVM分区:

fdisk /dev/sda1 -> t -> 5(Partition number)-> 31 (Partition type,Centos7 31) -> p -> w

创建PV,pvcreate /dev/sda1,查看pvdisplay /dev/sda1
创建VG,vgcreate Vol2 /dev/sda1,查看vgdisplay Vol2
创建LV,lvcreate option_args position_args,

-l指定分配给新逻辑卷的逻辑区段数,或要用的逻辑区段百分比,
或用-L指定分配给新逻辑卷的硬盘大小可以为KB,MB,GB为单位,
-n指定名称

lvcreate -l 100%FREE -n lvtest1 Vol,查看lvdisplay Vol2
创建文件系统,mkfs.ext4 /dev/Vol2/lvtest1
挂载,mount /dev/Vol2/lvtest1 /mnt/lvtest2/
修改LVM常用命令:

vgchange 激活和禁用卷组
vgremove 删除卷组
vgextend 扩展卷组
vgreduce 缩减卷组
lvextend 扩容逻辑卷
lvreduce 缩容逻辑卷

2. 示例

1. 向虚拟机centos-root扩展磁盘

  1. 在虚拟机,设置中新增一块硬盘
    SECTION 10 逻辑卷管理_第1张图片
  2. 重启虚拟机后,使用lsblk命令查看磁盘情况
[root@k8s-node-02 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   35G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm
sdb               8:16   0   10G  0 disk
sr0              11:0    1  973M  0 rom

可以看到sdb 10G为新增硬盘

  1. 使用fdisk创建新分区
    fdisk->p->n->回车->p->w
    到w即保存,分区完成

  2. 使用mkfs.ext4命令进行格式化
    mkfs.ext4 /dev/sdb

  3. 挂载分区(扩容)

我以挂载到根分区的data目录为例:

新建/data目录

mount /dev/sdb /data
df -hT
  1. 扩展/dev/mapper/centos-root
[root@k8s-node-02 ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.			#创建pv
[root@k8s-node-02 ~]# vgs									#查看vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <19.00g    0
[root@k8s-node-02 ~]# vgextend centos /dev/sdb				#扩展vg centos
  Volume group "centos" successfully extended
[root@k8s-node-02 ~]# vgs									#查看vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   2   2   0 wz--n- 28.99g <10.00g
[root@k8s-node-02 ~]# lvs									#查看lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <17.00g
  swap centos -wi-a-----   2.00g
[root@k8s-node-02 ~]# lvextend -L +10G /dev/mapper/centos-root	#扩展逻辑卷,失败了,实际可操作没那么大
  Insufficient free space: 2560 extents needed, but only 2559 available
[root@k8s-node-02 ~]# lvs									#查看lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <17.00g
  swap centos -wi-a-----   2.00g
[root@k8s-node-02 ~]# lvextend -L +8G /dev/mapper/centos-root	#扩展逻辑卷
  Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to <25.00 GiB (6399 extents).
  Logical volume centos/root successfully resized.
[root@k8s-node-02 ~]# lvs									#查看lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <25.00g
  swap centos -wi-a-----   2.00g
[root@k8s-node-02 ~]# df -h									#查看磁盘情况,发现并没有添加
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 866M     0  866M   0% /dev
tmpfs                    878M     0  878M   0% /dev/shm
tmpfs                    878M   13M  865M   2% /run
tmpfs                    878M     0  878M   0% /sys/fs/cgroup
/dev/mapper/centos-root   17G   17G   11M 100% /
/dev/sda1               1014M  225M  790M  23% /boot
tmpfs                    176M     0  176M   0% /run/user/0
[root@k8s-node-02 ~]# xfs_growfs /dev/mapper/centos-root	#我们还要使用命令使系统重新读取大小
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4455424, 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 4455424 to 6552576
[root@k8s-node-02 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 866M     0  866M   0% /dev
tmpfs                    878M     0  878M   0% /dev/shm
tmpfs                    878M   13M  865M   2% /run
tmpfs                    878M     0  878M   0% /sys/fs/cgroup
/dev/mapper/centos-root   25G   17G  8.1G  68% /
/dev/sda1               1014M  225M  790M  23% /boot
tmpfs                    176M     0  176M   0% /run/user/0
[root@k8s-node-02 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   35G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part
  ├─centos-root 253:0    0   25G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm
sdb               8:16   0   10G  0 disk
└─centos-root   253:0    0   25G  0 lvm  /
sr0              11:0    1  973M  0 rom

你可能感兴趣的:(#,bash,shell整理,运维)