1. 扩容方式 我这边使用的是 VirtualBox 虚拟机,Cnetos 7.9,我们可以在虚拟介质管理
进行空间分配和调整
然后应用即可(该操作只能在关机状态下操作!)
这边只是分配了空间,我们需要还对磁盘进行分区,又分为两种
不中断业务,新增分区
为扩容后的磁盘增加新的分区,不需要卸载原有分区,相比替换原有分区的方法,对业务影响较小。推荐系统盘或者需要保证业务不中断的磁盘扩容场景使用。
如果当前磁盘使用的是 MBR 格式,则此时要求扩容后的数据盘最大容量为2 TB,并且磁盘的分区数量还未达到上限。
中断业务,替换原有分区
如果当前磁盘使用的是 MBR 格式,并且磁盘的分区数量已经达到上限,则此时需要替换原有分区,替换原有分区不会删除原有分区的数据,但是需要先卸载原有分区,会影响线上业务运行。
如果当前磁盘使用的是 MBR 格式,并且扩容后磁盘容量已经超过2 TB,则 MBR 格式无法对超过2 TB 的部分进行分区。此时若将MBR分区方式换为 GPT,更换磁盘分区方式时会清除磁盘的原有数据,请先对数据进行备份。
我这边采取新增分区方案
2. 查看分区 分区前,需要查看当前磁盘的分区方式,当为MBR时可以选择 fdisk 或者 parted 工具,当为 GPT 时需要使用 parted 工具。
查看磁盘分区信息
“/dev/sda” 为系统盘
“Disk label type” 表示当前磁盘的分区方式,dos 表示磁盘分区方式为 MBR,gpt 表示磁盘分区方式为 GPT。
3. 新增分区
如果分区操作有误,请输入 “q”,则会退出 fdisk 分区工具,之前的分区结果将不会被保留。
3.1 使用 fdisk 对 /dev/sda 分区
3.2 输入 n 新建分区 1 2 3 4 5 6 7 8 9 10 11 Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): # 分区类型,直接默认主分区 Using default response p Partition number (3,4, default 3): # 分区序号,直接默认 First sector (104857600-125829119, default 104857600): # 新分区的起始磁柱编号,默认 Using default value 104857600 Last sector, +sectors or +size{K,M,G} (104857600-125829119, default 125829119): # 新分区的起始磁柱编号,默认 Using default value 125829119 Partition 3 of type Linux and of size 10 GiB is set
3.3 输入 t 设置分区格式
8e 为 lvm
LVM利用Linux内核的device-mapper来实现存储系统的虚拟化(系统分区独立于底层硬件)。通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,无需担心某个硬盘上没有足够的连续空间。
LVM的基本组成块(building blocks)如下:
物理卷 Physical volume (PV) :可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file)。物理卷包括一个特殊的header,其余部分被切割为一块块物理区域(physical extents)
卷组 Volume group (VG) :将一组物理卷收集为一个管理单元
逻辑卷 Logical volume (LV) :虚拟分区,由物理区域
物理区域 Physical extent (PE) :硬盘可供指派给逻辑卷的最小单位(通常为4MB)
比起正常的硬盘分区管理,LVM更富于弹性:
使用卷组(VG),使众多硬盘空间看起来像一个大硬盘
使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区
可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小
在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间
可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作,LVM上的文件系统也需要重新调整大小,某些文件系统也支持这样的在线操作。
无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。
允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。
3.4 输入 w 将分区结果写入分区表中
4. 创建物理卷(PV) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [root@dream ~]# pvdisplay # 查看物理卷 --- Physical volume --- PV Name /dev/sda2 VG Name centos PV Size <49.00 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 12543 Free PE 1 Allocated PE 12542 PV UUID YlSuif-tyMd-mohJ-gKQv-YRgc-OyKi-TtsI74 [root@dream ~]# pvcreate /dev/sda3 # 创建物理卷 Physical volume "/dev/sda3" successfully created. [root@dream ~]# pvdisplay #再次查看 --- Physical volume --- PV Name /dev/sda2 VG Name centos PV Size <49.00 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 12543 Free PE 1 Allocated PE 12542 PV UUID YlSuif-tyMd-mohJ-gKQv-YRgc-OyKi-TtsI74 "/dev/sda3" is a new physical volume of "10.00 GiB" --- NEW Physical volume --- PV Name /dev/sda3 VG Name PV Size 10.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID fHqGUt-lPu6-s6Oo-BUjK-s6NH-T2T0-goRcd0 # 可以看到新的物理卷,大小为我扩容的 10G
5. 将物理卷(PV)加入卷组(VG) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 [root@dream ~]# vgdisplay # 查看卷组,可用 PE 为1,也就是 4M --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size <49.00 GiB PE Size 4.00 MiB Total PE 12543 Alloc PE / Size 12542 / 48.99 GiB Free PE / Size 1 / 4.00 MiB VG UUID acX3P4-ayHo-cppq-lD59-eCK4-ecWW-7VA4wp [root@dream ~]# vgextend centos /dev/sda3 # 将新分区加入 centos 卷组 Volume group "centos" successfully extended [root@dream ~]# vgdisplay # 再次查看卷组 可用 PE 为2560,也就是 10GiB --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 58.99 GiB PE Size 4.00 MiB Total PE 15102 Alloc PE / Size 12542 / 48.99 GiB Free PE / Size 2560 / 10.00 GiB VG UUID acX3P4-ayHo-cppq-lD59-eCK4-ecWW-7VA4wp
6. 逻辑卷(LV)扩容 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 [root@dream ~]# df -h #查看磁盘情况 Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 9.1M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 47G 8.7G 39G 19% / /dev/sda1 1014M 150M 865M 15% /boot overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/2dfe976c92c0fa85e834e5aadecbb65867beadb76132e29399a4fff638692371/merged overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/3ee3a86bd1a312d5c76608cd9e19a159cc4f8d56298db783f31b23b5a0c2236a/merged overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/c2079604082005e12f82150e3e5faec3b9d0bb8fa8eedeed9de6ab4836fe137d/merged overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/08a128414b31313071d80afedb85cbf773645035e6715e1743f7968c73b0f492/merged overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/97107f876c6416d0796443de593c74b1c109f2eaa76001c169c5ccf306a3801f/merged overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/56f6ff1076be9fa2c30119cfd8a048e55d98bf49764fe50935b60e7f5f4f7f0c/merged overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/37b2f20fb1b26812adc332cb3be1a3d164c5b43b2aaa4bb12348affdbcaa6af6/merged tmpfs 783M 0 783M 0% /run/user/0 [root@dream ~]# lvdisplay 查看 LV 信息 --- Logical volume --- LV Path /dev/centos/swap LV Name swap VG Name centos LV UUID EfZny2-B6fb-cUAK-Q2ra-KLaq-DjXP-s9xKbM LV Write Access read/write LV Creation host, time localhost, 2021-08-01 11:19:18 +0800 LV Status available # open 2 LV Size 2.00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1 --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID grbt1v-ugSB-fYmd-kwbT-G3kT-LE78-qhcQyC LV Write Access read/write LV Creation host, time localhost, 2021-08-01 11:19:18 +0800 LV Status available # open 1 LV Size 46.99 GiB Current LE 12030 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 [root@dream ~]# lvresize -l +100%FREE /dev/centos/root # 给 /dev/centos/root 这个逻辑卷扩容(大小为所在卷组 100% 可用 PE) Size of logical volume centos/root changed from 46.99 GiB (12030 extents) to 56.99 GiB (14590 extents). Logical volume centos/root successfully resized. [root@dream ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 9.1M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 47G 8.7G 39G 19% / /dev/sda1 1014M 150M 865M 15% /boot overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/2dfe976c92c0fa85e834e5aadecbb65867beadb76132e29399a4fff638692371/merged overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/3ee3a86bd1a312d5c76608cd9e19a159cc4f8d56298db783f31b23b5a0c2236a/merged overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/c2079604082005e12f82150e3e5faec3b9d0bb8fa8eedeed9de6ab4836fe137d/merged overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/08a128414b31313071d80afedb85cbf773645035e6715e1743f7968c73b0f492/merged overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/97107f876c6416d0796443de593c74b1c109f2eaa76001c169c5ccf306a3801f/merged overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/56f6ff1076be9fa2c30119cfd8a048e55d98bf49764fe50935b60e7f5f4f7f0c/merged overlay 47G 8.7G 39G 19% /var/lib/docker/overlay2/37b2f20fb1b26812adc332cb3be1a3d164c5b43b2aaa4bb12348affdbcaa6af6/merged tmpfs 783M 0 783M 0% /run/user/0 [root@dream ~]# xfs_growfs /dev/centos/root # 用 xfs_growfs 对扩容后的 LV 进行 xfs 格式同步系统 meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3079680 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=12318720, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=6015, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 12318720 to 14940160 [root@dream ~]# df -h # 重新查看磁盘情况,可以看到扩容了 10G Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 9.1M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 57G 8.7G 49G 16% / /dev/sda1 1014M 150M 865M 15% /boot overlay 57G 8.7G 49G 16% /var/lib/docker/overlay2/2dfe976c92c0fa85e834e5aadecbb65867beadb76132e29399a4fff638692371/merged overlay 57G 8.7G 49G 16% /var/lib/docker/overlay2/3ee3a86bd1a312d5c76608cd9e19a159cc4f8d56298db783f31b23b5a0c2236a/merged overlay 57G 8.7G 49G 16% /var/lib/docker/overlay2/c2079604082005e12f82150e3e5faec3b9d0bb8fa8eedeed9de6ab4836fe137d/merged overlay 57G 8.7G 49G 16% /var/lib/docker/overlay2/08a128414b31313071d80afedb85cbf773645035e6715e1743f7968c73b0f492/merged overlay 57G 8.7G 49G 16% /var/lib/docker/overlay2/97107f876c6416d0796443de593c74b1c109f2eaa76001c169c5ccf306a3801f/merged overlay 57G 8.7G 49G 16% /var/lib/docker/overlay2/56f6ff1076be9fa2c30119cfd8a048e55d98bf49764fe50935b60e7f5f4f7f0c/merged overlay 57G 8.7G 49G 16% /var/lib/docker/overlay2/37b2f20fb1b26812adc332cb3be1a3d164c5b43b2aaa4bb12348affdbcaa6af6/merged tmpfs 783M 0 783M 0% /run/user/0
7. 说明 7.1 命令
lresize 命令 options: -L:指定逻辑卷的大小,单位为“kKmMgGtT”字节; -l:指定逻辑卷的大小(LE数)。 可以指定大小,也可以像我上面的一样 100%FREE ,就是把卷组可用 PE 全部分配给逻辑卷
xfs_growfs 命令 这个命令是用来同步系统的,自动扩展XFS文件系统到最大的可用大小,不执行此操作是无法看到新增的容量的,但是在此之前我们是需要查看文件系统的
使用 df -hT 来查看,Type 对应的类型 resize2fs 命令 针对的是ext2、ext3、ext4文件系统 xfs_growfs 命令 针对的是xfs文件系统
7.2 /dev/centos/root
/dev/centos/root 对应 /dev/卷组/逻辑卷