Ubuntu使用LVM磁盘扩容

1 查看磁盘配置

# 查看磁盘信息
# sudo fdisk -l
​
# 1个扩展分区和两个逻辑分区
Device     Boot   Start     End Sectors  Size Id Type
/dev/sdb1          2048 4196351 4194304    2G  5 Extended
/dev/sdb5          4096 1028095 1024000  500M 83 Linux
/dev/sdb6       1030144 2054143 1024000  500M 83 Linux

2 创建逻辑卷

2.1 将逻辑分区转化为物理卷

# (1)将/dev/sdb5和/dev/sdb6逻辑卷转化为物理卷
# sudo pvcreate /dev/sdb{5,6}
​
# 因为我的sdb5和sdb6修改过ext4文件系统,此处擦出即可
WARNING: ext4 signature detected on /dev/sdb5 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sdb5.
WARNING: ext4 signature detected on /dev/sdb6 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sdb6.
  Physical volume "/dev/sdb5" successfully created.
  Physical volume "/dev/sdb6" successfully created.
​
# (2)搜索物理卷
# sudo pvscan
 
  PV /dev/sdb6                      lvm2 [500.00 MiB]
  PV /dev/sdb5                      lvm2 [500.00 MiB]
​
​
# (3)查看详细的物理卷
# sudo pvdisplay
​
"/dev/sdb6" is a new physical volume of "500.00 MiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb6
  VG Name               
  PV Size               500.00 MiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               oPZ5UZ-1ARL-b0lz-hqFD-mMxZ-qjVY-kX1518
………………

2.2 创建逻辑卷组

# (1) 将物理卷/dev/sdb6和/dev/sdb5放在mason-vg卷组下
# 注意默认PE=4M,也可以使用“-s”参数指定PE(物理扩展块,LVM最小存储块)
# sudo vgcreate mason-vg /dev/sdb{5,6}
​
  Volume group "mason-vg" successfully created
​
# (2) 搜索逻辑卷组
# sudo vgscan
​
 Reading volume groups from cache.
  Found volume group "mason-vg" using metadata type lvm2
​
# (3)查看详细的卷组
# sudo vgdisplay
​
  --- Volume group ---
  VG Name               mason-vg
  System ID             
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               992.00 MiB
  PE Size               4.00 MiB
  # PE的数量
  Total PE              248
  Alloc PE / Size       0 / 0   
  Free  PE / Size       248 / 992.00 MiB
  VG UUID               mxjnOM-9bkh-9zt1-1H0q-ZWeD-sfQ1-3NDucA
​

2.3 创建逻辑卷

# (1)使用mason-vg创建逻辑卷mason-lv
# sudo lvcreate -l 248 -n mason-lv mason-vg
# -l表示后面是PE的数量,-n表示逻辑卷名
  Logical volume "mason-lv" created.
​
# (2)搜索逻辑卷
# sudo lvscan
  ACTIVE            '/dev/mason-vg/mason-lv' [992.00 MiB] inherit
​
# (3)查看详细的逻辑卷
# sudo lvdisplay
​
  --- Logical volume ---
  LV Path                /dev/mason-vg/mason-lv
  LV Name                mason-lv
  VG Name                mason-vg
  LV UUID                zKjT8b-2Wpa-MXZy-1OSG-R5XD-4ere-gOaPo7
  LV Write Access        read/write
  LV Creation host, time mason-server, 2021-07-08 06:01:48 +0000
  LV Status              available
  # open                 0
  LV Size                992.00 MiB
  Current LE             248
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
 
 # (4)查看分区情况
 # sudo lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
…………
sdb                         8:16   0    4G  0 disk 
├─sdb1                      8:17   0    1K  0 part 
├─sdb5                      8:21   0  500M  0 part 
│ └─mason--vg-mason--lv   253:1    0  992M  0 lvm  /home/mason
├─sdb6                      8:22   0  500M  0 part 
  └─mason--vg-mason--lv   253:1    0  992M  0 lvm  /home/mason 
​
# 注意:/dev/mapper/mason--vg-mason--lv是创建逻辑卷时系统自动生成的,对应/dev/mason-vg/mason-lv
  

3 逻辑卷挂载

# (1) 格式化逻辑卷
# sudo mkfs -t ext4 /dev/mason-vg/mason-lv
​
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 253952 4k blocks and 63488 inodes
Filesystem UUID: 55041b5c-5a4f-43d2-8595-6b772d7dbcc1
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376
​
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
​
​
# (2) 将逻辑卷mason-lv挂载到/home/mason
# 我的home目录下已经创建了一个mason目录,如果需要开机自动挂载设置/etc/fstab
# sudo mount /dev/mason-vg/mason-lv /home/mason
​
# (3) 查看挂载情况
# df -h
Filesystem                         Size  Used Avail Use% Mounted on
…………………
tmpfs                              395M     0  395M   0% /run/user/1000
/dev/mapper/mason--vg-mason--lv    961M  2.5M  893M   1% /home/mason
​

4 磁盘容量调整

4.1 扩充LV容量

# (1)新创建一个500M的逻辑分区/dev/sdb7,并转化为物理卷
# sudo pvcreate /dev/sdb7
​
# (2)搜索物理卷
# sudo pvscan
  PV /dev/sdb5   VG mason-vg        lvm2 [496.00 MiB / 0    free]
  PV /dev/sdb6   VG mason-vg        lvm2 [496.00 MiB / 0    free]
  PV /dev/sda3   VG ubuntu-vg       lvm2 [<39.00 GiB / <19.00 GiB free]
  PV /dev/sdb7
​
# (3)向卷组mason-vg中添加物理卷/dev/sdb7
# sudo vgextend mason-vg /dev/sdb7
​
  Volume group "mason-vg" successfully extended
​
# (4)查看卷组
# sudo vgdisplay
…………
  Alloc PE / Size       248 / 992.00 MiB
  # 可以看到空闲PE块数量
  Free  PE / Size       124 / 496.00 MiB
…………
​
# (5)使用lvresize扩大逻辑卷mason-lv
# -l表示扩展PE;+10表示扩展10个PE;/dev/mapper/mason--vg-mason--lv表示逻辑卷的映射地址,也可以换成/dev/mason-vg/mason-lv地址
# sudo lvresize -l +10 /dev/mason-vg/mason-lv
​
# (6)也可以使用lvextend扩大逻辑卷mason-lv
# -l表示扩展PE;+10表示扩展10个PE;/dev/mapper/mason--vg-mason--lv表示逻辑卷的映射地址,也可以换成/dev/mason-vg/mason-lv地址
# sudo lvextend -l +10 /dev/mason-vg/mason-lv
​
# (7)使用lvdisplay查看逻辑卷是否扩容
# sudo lvdisplay
…………
 # 经过几次扩容我的LV的容量如下
 LV Size                1.16 GiB
…………
# 注意,此时文件系统的容量没有增加,即使用df查看相应的目录容量没有变化
# sudo df -h
​
# (8)将LV容量扩充到文件系统中
# sudo resize2fs /dev/mason-vg/mason-lv
​
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/mason-vg/mason-lv is mounted on /home/mason; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mason-vg/mason-lv is now 315392 (4k) blocks long.
​
# (9)查看文件系统容量
# sudo df -h
…………
/dev/mapper/mason--vg-mason--lv    1.2G  3.0M  1.1G   1% /home/mason
…………
​

4.2 缩小LV容量

# (1)使用lvresize缩小逻辑卷mason-lv,缩小LV容量和放大容量的区别就在”-“和”+“
# sudo lvresize -l -10 /dev/mason-vg/mason-lv
​
  WARNING: Reducing active and open logical volume to 1.12 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mason-vg/mason-lv? [y/n]: y
  Size of logical volume mason-vg/mason-lv changed from 1.16 GiB (298 extents) to 1.12 GiB (288 extents).
  Logical volume mason-vg/mason-lv successfully resized.
​
# 注意:缩小LV容量不支持在线更新文件系统,只能使用先卸载磁盘再更新
# sudo resize2fs /dev/mason-vg/mason-lv
​
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/mapper/mason--vg-mason--lv is mounted on /home/mason; on-line resizing required
resize2fs: On-line shrinking not supported
​
# (2)移动PE
# 将物理卷/dev/sdb7的PE全部移动到/dev/sdb6上,注意:/dev/sdb6的空间
# sudo pvmove /dev/sdb7 /dev/sdb6
​
#(3)将物理卷/dev/sdb7从逻辑卷组中移除
# 注意:要保证/dev/sdb7上的PE全部空闲,使用lvresize删除PE
# sudo vgreduce mason-vg /dev/sdb7
​
  Removed "/dev/sdb7" from volume group "mason-vg"
​
# (4)移除物理卷
# sudo pvremove /dev/sdb7
​
  Labels on physical volume "/dev/sdb7" successfully wiped.
### Ubuntu 系统中的磁盘扩容方法 在 Ubuntu 中对磁盘进行扩容可以通过多种方式实现,具体取决于系统的配置以及使用的工具。以下是基于逻辑卷管理(LVM)的方式完成磁盘扩容的过程。 #### 使用 LVM 进行磁盘扩容 对于采用 LVM 的系统,可以利用 `lvextend` 命令将新增加的物理磁盘分配给现有的逻辑卷。这一过程通常涉及以下几个方面: 1. **确认当前磁盘状态** 需要先查看现有磁盘的状态及其挂载情况。通过执行以下命令获取相关信息: ```bash lsblk ``` 此外,还可以使用 `df -h` 查看文件系统的可用空间和已用空间[^5]。 2. **添加新磁盘并初始化** 如果是在 VirtualBox 或其他虚拟化环境中操作,则需要先增加虚拟机的存储容量,并将其映射到操作系统中[^3]。接着,使用 `fdisk` 或者 `parted` 对新磁盘进行分区处理。 示例代码如下: ```bash sudo fdisk /dev/sdb ``` 3. **创建物理卷** 将新划分好的分区转换为 LVM 物理卷: ```bash pvcreate /dev/sdb1 ``` 4. **扩展卷组** 把新建的物理卷加入原有的卷组当中: ```bash vgextend ubuntu-vg /dev/sdb1 ``` 5. **扩大逻辑卷** 利用 `lvextend` 来增大目标逻辑卷的空间尺寸: ```bash lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv ``` 上述指令会自动填充剩余的所有自由空间[^2]。 6. **重新调整文件系统大小** 完成逻辑卷的扩展后,还需要更新实际的文件系统才能使额外的空间生效。如果是 ext4 类型的话,运行下面这条语句即可: ```bash resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv ``` 若是 XFS 文件系统则应改用此命令替代: ```bash xfs_growfs / ``` 经过上述步骤之后,便成功完成了整个磁盘扩容流程[^1]。 #### 图形界面下的简单扩容方案 如果不想借助终端来进行复杂的设置,在某些情况下也可以依靠图形化的手段快速解决问题。比如 Nautilus 文件浏览器自带的功能允许用户直接修改 NTFS/FAT32 分区的大小;而对于内部 Linux 根目录之类的特殊区域,则可能需要用到 GParted 工具辅助完成任务[^4]。 ```python import os os.system('gparted') ``` 调用该程序能够直观地看到各块设备布局状况,并支持在线或离线状态下灵活变动它们各自的界限范围。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值