青蛙小白
目录

Disk Partition

分区和挂载

查看要分区的硬盘

查看系统所有的块设备:

lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0     11:0    1  630K  0 rom
vda    253:0    0   50G  0 disk
├─vda1 253:1    0  500M  0 part /boot
├─vda2 253:2    0    4G  0 part [SWAP]
└─vda3 253:3    0 45.5G  0 part /
vdb    253:16   0  103G  0 disk

vda和vdb显示为 disk,表示这是完整的磁盘设备。在虚拟机中,vda/vdb表示虚拟磁盘,vda通常是第一块虚拟硬盘,vdb是第二块虚拟硬盘。

在物理机中,通常会看到sda/sdb(SCSI/SATA磁盘)或hda/hdb(IDE磁盘)

vda1、vda2、vda3显示为part,表示这些是分区(partition),它们是磁盘的逻辑分区:

  • vda1: 引导分区 (/boot)
  • vda2: 交换分区 ([SWAP])
  • vda3: 根分区 (/)

vdb是本次要进行分区的磁盘,查看确认要分区的磁盘:

fdisk -l /dev/vdb
Disk /dev/vdb: 103 GiB, 110595407872 bytes, 216006656 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

创建LVM分区并挂载

创建物理卷,并查看创建的物理卷。

pvcreate /dev/vdb
  Physical volume "/dev/vdb" successfully created.

pvdisplay
  "/dev/vdb" is a new physical volume of "103.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/vdb
  VG Name
  PV Size               103.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0

创建名称为data的卷组,并查看卷组:

vgcreate data /dev/vdb
  Volume group "data" successfully created

vgdisplay
  --- Volume group ---
  VG Name               data
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <103.00 GiB
  PE Size               4.00 MiB
  Total PE              26367
  Alloc PE / Size       0 / 0
  Free  PE / Size       26367 / <103.00 GiB

在卷组data上创建逻辑卷home,并挂载到/home:

创建时指定逻辑卷的大小:

lvcreate -n home -L 50G data

或创建时指定逻辑卷的大小为卷组的所有剩余空间:

lvcreate -n home -l 100%FREE data

查看逻辑卷:

lvdisplay
  --- Logical volume ---
  LV Path                /dev/data/home
  LV Name                home
  VG Name                data
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                <103.00 GiB
  Current LE             26367
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:0

格式化home逻辑卷:

mkfs.ext4 /dev/data/home

备份原来/home下的数据:

cd /root
mkdir home
cp -r /home /root
ll /root/home

编辑/etc/fstab将下面的内容放到最下边:

/dev/mapper/data-home   /home      ext4    defaults        0 3

重新挂载:

mount -a

查看挂载后各个挂载点:

 df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               4.0M     0  4.0M   0% /dev
tmpfs                  3.7G     0  3.7G   0% /dev/shm
tmpfs                  1.5G  121M  1.4G   9% /run
tmpfs                  4.0M     0  4.0M   0% /sys/fs/cgroup
/dev/vda3               45G  6.0G   37G  14% /
tmpfs                  3.7G     0  3.7G   0% /tmp
/dev/vda1              459M  144M  287M  34% /boot
/dev/mapper/data-home  101G   24K   96G   1% /home


lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0          11:0    1  630K  0 rom
vda         253:0    0   50G  0 disk
├─vda1      253:1    0  500M  0 part /boot
├─vda2      253:2    0    4G  0 part [SWAP]
└─vda3      253:3    0 45.5G  0 part /
vdb         253:16   0  103G  0 disk
└─data-home 252:0    0  103G  0 lvm  /home

拷贝回原来/home的数据:

cp -r /root/home/* /home

cd /home

# 注意修改原来home下的目录的所有者和所属组,例如
chown openeuler:openeuler -R openeuler/
ll

创建Ceph OSD所需的逻辑卷

在部署Ceph时,创建Ceph OSD所需的逻辑。

以从名称为data卷组创建为例,假设创建的逻辑卷名称为ceph。

创建时指定逻辑卷的大小:

lvcreate -n ceph -L 50G data

或创建时指定逻辑卷的大小为卷组的所有剩余空间:

lvcreate -n ceph -l 100%FREE data

创建完的逻辑卷不要格式化和挂载,等到部署Ceph时创建osd时使用即可。

扩展根分区到剩余磁盘空间

当磁盘有未分配的空间时,可以将这些空间扩展到根分区。以下以 /dev/vda 磁盘为例,磁盘总大小为 300G,已分配 40G(vda1: 2G + vda2: 38G),剩余 260G 未分配。

查看当前分区情况

查看块设备:

lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda    253:0    0  300G  0 disk
├─vda1 253:1    0    2G  0 part /boot
└─vda2 253:2    0   38G  0 part /
vdb    253:16   0    8G  0 disk

查看详细分区信息:

fdisk -l /dev/vda
Disk /dev/vda: 300 GiB, 322122547200 bytes, 629145600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5428ecf0

Device     Boot   Start      End  Sectors Size Id Type
/dev/vda1          2048  4194303  4192256   2G  e W95 FAT16 (LBA)
/dev/vda2       4194304 83886079 79691776  38G 83 Linux

操作前准备

确认根分区的文件系统类型:

df -Th /

根据文件系统类型选择对应的扩展命令:

  • 如果是 xfs → 使用 xfs_growfs
  • 如果是 ext4 → 使用 resize2fs
操作分区表有风险,请务必备份重要数据!

方式一:使用 growpart(推荐)

如果系统有 cloud-utils-growpart 包,这是最简单安全的方式。

安装 growpart 工具:

yum install -y cloud-utils-growpart

扩展 /dev/vda2 分区到磁盘剩余空间:

growpart /dev/vda 2

扩展文件系统:

  • XFS 文件系统:

    xfs_growfs /
  • EXT4 文件系统:

    resize2fs /dev/vda2

方式二:手动使用 fdisk 扩展

如果没有 growpart 工具,可以手动使用 fdisk 扩展分区。

⚠️ 此方法风险稍高,务必小心操作
  1. 记录当前 /dev/vda2 的起始扇区(Start):

    Start = 4194304
  2. 使用 fdisk 删除并重新创建分区:

    fdisk /dev/vda

    在 fdisk 交互界面中依次执行:

    d          # 删除分区
    2          # 选择分区2
    n          # 新建分区
    p          # 主分区
    2          # 分区号2
    4194304    # 起始扇区(必须与原来一致)
    <回车>      # 结束扇区(使用剩余所有空间)
    N          # 不删除签名(如果询问)
    w          # 保存并退出
  3. 重启系统使分区表生效:

    reboot
  4. 重启后扩展文件系统:

    • XFS 文件系统:

      xfs_growfs /
    • EXT4 文件系统:

      resize2fs /dev/vda2

验证扩展结果

查看分区大小:

lsblk
df -h /

成功后 /dev/vda2 应该接近 298G(300G 减去 vda1 的 2G)。

评论