新分配的服务器,系统盘80G,数据盘500G,我们希望数据盘的空间都挂载到根目录下该如何操作呢?
系统版本:openEuler 22.03 LTS
一、系统磁盘空间查看、挂载情况查看
用lsblk查看磁盘分区情况入下图,可以看到有2块盘vda和vdb ,其中vda 盘80G,有2个分区vda1和vda2 ;vdb有500G的磁盘容量,没有分区也没有挂载。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 1024M 0 rom
vda 252:0 0 80G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 79G 0 part
├─openeuler-root 253:0 0 47.8G 0 lvm /
├─openeuler-swap 253:1 0 7.9G 0 lvm [SWAP]
└─openeuler-home 253:2 0 23.3G 0 lvm /home
vdb 252:16 0 500G 0 disk
用df -h 查看系统存储空间以及磁盘挂载情况,可以看到根目录下可用空间只有43G,无法满足要求。
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 13G 17M 13G 1% /run
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
/dev/mapper/openeuler-root 47G 1.9G 43G 5% /
tmpfs 32G 0 32G 0% /tmp
/dev/vda1 974M 87M 820M 10% /boot
/dev/mapper/openeuler-home 23G 376M 22G 2% /home
二、使用 fdisk 对磁盘进行分区
2.1 我们要给vdb分区 用fdisk /dev/vdb
说明:输入 fdisk /dev/vdb 后,输入n 表示新建分区(new) ,后面的根据提示操作即可,有默认值的可以直接回车。
[root@localhost ~]# fdisk /dev/vdb
欢迎使用 fdisk (util-linux 2.37.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0xb442d595 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (0 primary, 0 extended, 4 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (1-4, 默认 1):
第一个扇区 (2048-1048575999, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-1048575999, 默认 1048575999):
创建了一个新分区 1,类型为“Linux”,大小为 500 GiB。
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
2.2 重新识别磁盘。命令:partprobe
[root@localhost ~]#
[root@localhost ~]# partprobe
[root@localhost ~]#
[root@localhost ~]#
2.3 再用lsblk查看 ,可以看到vdb已经有了一个分区叫vdb1 磁盘空间500G ,但是还没挂载到根目录
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 1024M 0 rom
vda 252:0 0 80G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 79G 0 part
├─openeuler-root 253:0 0 47.8G 0 lvm /
├─openeuler-swap 253:1 0 7.9G 0 lvm [SWAP]
└─openeuler-home 253:2 0 23.3G 0 lvm /home
vdb 252:16 0 500G 0 disk
└─vdb1 252:17 0 500G 0 part
2.3 查看文件系统的格式 用df -T ,可以看到类型这列,显示的是ext4 格式(之前的文章里面用的是xfs,这个后面就根据实际情况用实际的命令即可)
[root@localhost ~]# df -T
文件系统 类型 1K-块 已用 可用 已用% 挂载点
devtmpfs devtmpfs 32624512 0 32624512 0% /dev
tmpfs tmpfs 32641608 0 32641608 0% /dev/shm
tmpfs tmpfs 13056644 17196 13039448 1% /run
tmpfs tmpfs 4096 0 4096 0% /sys/fs/cgroup
/dev/mapper/openeuler-root ext4 49019548 1893480 44603548 5% /
tmpfs tmpfs 32641612 0 32641612 0% /tmp
/dev/vda1 ext4 996780 88704 839264 10% /boot
/dev/mapper/openeuler-home ext4 23908728 384496 22284376 2% /home
2.4 将刚刚的硬盘重新格式化,格式化为ext4格式,命令用 mkfs.ext4 /dev/vdb1
[root@localhost ~]# mkfs.ext4 /dev/vdb1
mke2fs 1.46.4 (18-Aug-2021)
创建含有 131071744 个块(每块 4k)和 32768000 个inode的文件系统
文件系统UUID:867bd6e2-ef12-4d5c-88c7-e4b2d104b05f
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000
正在分配组表: 完成
正在写入inode表: 完成
创建日志(262144 个块)完成
写入超级块和文件系统账户统计信息: 已完成
三、使用lvm命令,对根目录进行扩容
3.1 进入lvm模式。用pvdisplay查看物理卷详情,发现只有1个物理卷 /dev/vda2
[root@localhost ~]# lvm
lvm>
lvm>
lvm> pvdisplay
--- Physical volume ---
PV Name /dev/vda2
VG Name openeuler
PV Size <79.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 20223
Free PE 0
Allocated PE 20223
PV UUID ECcS1h-jAAx-NoDb-sz2o-cAfP-is4M-3fUVsY
3.2 新建pv卷。命令:pvcreate /dev/vdb1 (创建名称叫vdb1的pv卷)
lvm> pvcreate /dev/vdb1
WARNING: ext4 signature detected on /dev/vdb1 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/vdb1.
Physical volume "/dev/vdb1" successfully created.
3.3 再次用pvdisplay查看pv卷,已经有两个pv卷了。
可以创建看到第2个pv卷就是刚刚新建的vdb1
lvm> pvdisplay
--- Physical volume ---
PV Name /dev/vda2
VG Name openeuler
PV Size <79.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 20223
Free PE 0
Allocated PE 20223
PV UUID ECcS1h-jAAx-NoDb-sz2o-cAfP-is4M-3fUVsY
"/dev/vdb1" is a new physical volume of "<500.00 GiB"
--- NEW Physical volume ---
PV Name /dev/vdb1
VG Name
PV Size <500.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 0NntKO-njBX-ZkFM-ehfG-yhQI-tNRX-brzn9m
3.4 查看vg组。命令:vgdisplay 。可以发现VG Name 叫 openeuler
lvm> vgdisplay
--- Volume group ---
VG Name openeuler
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size <79.00 GiB
PE Size 4.00 MiB
Total PE 20223
Alloc PE / Size 20223 / <79.00 GiB
Free PE / Size 0 / 0
VG UUID FDWpvQ-AGYU-KviR-E8hg-HZxC-NkSQ-0a0TB1
3.5 将刚刚生成的pv卷 /dev/vdb1 加入到根目录所在的vg组:openeuler
lvm> vgextend openeuler /dev/vdb1
Volume group "openeuler" successfully extended
备注:这里在扩容另外一台服务器的时候碰到了一个问题(本台服务器没碰到):挂载根目录的磁盘使用100%,需要把根目录的文件移走到其他路径下,比如/boot 目录下,再进行加入组。
3.6 再次查看,根目录所在的vg组:openeuler 已经扩容成功。
重点看倒数第2行 Free PE / Size 127999 / <500.00 GiB (注意这个127999后面有用)
lvm> vgdisplay
--- Volume group ---
VG Name openeuler
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 2
Act PV 2
VG Size 578.99 GiB
PE Size 4.00 MiB
Total PE 148222
Alloc PE / Size 20223 / <79.00 GiB
Free PE / Size 127999 / <500.00 GiB
VG UUID FDWpvQ-AGYU-KviR-E8hg-HZxC-NkSQ-0a0TB1
3.7 查看lv卷。命令:lvdisplay
lvm> lvdisplay
--- Logical volume ---
LV Path /dev/openeuler/swap
LV Name swap
VG Name openeuler
LV UUID cjvrZy-AGS8-qqZZ-hjq3-CjFP-NOy8-mv1krJ
LV Write Access read/write
LV Creation host, time localhost, 2024-08-05 10:03:48 +0800
LV Status available
# open 2
LV Size <7.86 GiB
Current LE 2012
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/openeuler/home
LV Name home
VG Name openeuler
LV UUID SqVbPS-51Zd-Blxu-Vqrx-psrs-5hVj-UcdeTg
LV Write Access read/write
LV Creation host, time localhost, 2024-08-05 10:03:48 +0800
LV Status available
# open 1
LV Size <23.34 GiB
Current LE 5974
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/openeuler/root
LV Name root
VG Name openeuler
LV UUID W29h3v-9gVd-68NH-G14F-Ah26-IByw-UhVgsT
LV Write Access read/write
LV Creation host, time localhost, 2024-08-05 10:03:49 +0800
LV Status available
# open 1
LV Size 47.80 GiB
Current LE 12237
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
3.8 使用 lvextend 为根目录进行扩容。命令:lvextend -l +127999 /dev/openeuler/root
备注:这个127999 就是上面vgdisplay下展示的 Free PE值。
也可以直接用:lvextend -L +499G /dev/openeuler/root 也可以(有效空间可能小于500G了,所以用499G)
lvm> lvextend -l +127999 /dev/openeuler/root
Size of logical volume openeuler/root changed from 47.80 GiB (12237 extents) to <547.80 GiB (140236 extents).
Logical volume openeuler/root successfully resized.
lvm>
3.10 扩容文件系统。要先退出lvm模式,再执行命令 resize2fs /dev/mapper/openeuler-root
lvm>
lvm> exit
Exiting.
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# resize2fs /dev/mapper/openeuler-root
resize2fs 1.46.4 (18-Aug-2021)
/dev/mapper/openeuler-root 上的文件系统已被挂载于 /;需要进行在线调整大小
old_desc_blocks = 6, new_desc_blocks = 69
/dev/mapper/openeuler-root 上的文件系统现在为 143601664 个块(每块 4k)。
[root@localhost ~]#
3.11 检查系统是否扩容成功,用lsblk 和 df -h
用lsblk 可以看到,vdb1 已经挂载到了根目录/。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 1024M 0 rom
vda 252:0 0 80G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 79G 0 part
├─openeuler-root 253:0 0 547.8G 0 lvm /
├─openeuler-swap 253:1 0 7.9G 0 lvm [SWAP]
└─openeuler-home 253:2 0 23.3G 0 lvm /home
vdb 252:16 0 500G 0 disk
└─vdb1 252:17 0 500G 0 part
└─openeuler-root 253:0 0 547.8G 0 lvm /
再用df -h查看,根目录/的可用空间有515G。
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 13G 17M 13G 1% /run
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
/dev/mapper/openeuler-root 539G 1.9G 515G 1% /
tmpfs 32G 0 32G 0% /tmp
/dev/vda1 974M 87M 820M 10% /boot
/dev/mapper/openeuler-home 23G 376M 22G 2% /home
根目录扩容完成。