常用命令:
# 查看挂载结构(列出所有可用块设备的信息)
lsblk
# 查看硬盘信息(分区情况)
fdisk -l
# 查看硬盘使用情况
df -h
示例:
[root@rancher-server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 100G 0 disk
├─vda1 252:1 0 500M 0 part /boot
└─vda2 252:2 0 19.5G 0 part
├─centos-root 253:0 0 15.5G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
vdb 252:16 0 80G 0 disk
根据系统输出的内容我们知道了,有两块磁盘 vda
vdb
, vda
只被分配了20G空间,vdb
未被使用。
vda
因为已被分区,所以剩余的80G空间,必须建立一个新分区(如:vda3
)通过 PV 加入 VG 扩容 LV(如:root 根目录)。
vdb
未被分区,可以跳过分区创建步骤,直接通过 PV 加入 VG 扩容 LV(如:root 根目录)。
名词解释:
pv
物理卷,vg
卷组,lv
逻辑卷
可以说成是PV就是硬盘,而VG就是管理硬盘的操作系统,而LV就是操作系统分出来的各个分区.
PV->VG->LV-> 文件系统使用(挂载到某个目录)
fdisk /dev/vda
(对vda分区,具体被分区目标根据实际情况而定)[root@rancher-server ~]# fdisk /dev/vda
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3):
First sector (41934848-209715199, default 41934848):
Using default value 41934848
Last sector, +sectors or +size{K,M,G} (41934848-209715199, default 209715199):
Using default value 209715199
Partition 3 of type Linux and of size 80 GiB is set
查看目前所有可用块设备的信息
[root@rancher-server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 100G 0 disk
├─vda1 252:1 0 500M 0 part /boot
├─vda2 252:2 0 19.5G 0 part
│ ├─centos-root 253:0 0 95.5G 0 lvm /
│ └─centos-swap 253:1 0 4G 0 lvm [SWAP]
└─vda3 252:3 0 80G 0 part
└─centos-root 253:0 0 95.5G 0 lvm /
vdb 252:16 0 80G 0 disk
查看当前LV(逻辑卷与卷组)
[root@rancher-control-1 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID 1xG0N6-KN3l-13qo-uXVX-GKyI-qNcF-LoGf4Z
LV Write Access read/write
LV Creation host, time localhost, 2019-11-04 16:59:21 +0800
LV Status available
# open 2
LV Size 4.00 GiB
Current LE 1024
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 XRHaIJ-aScx-bgOX-VRLX-IvLQ-COpb-UZIxI0
LV Write Access read/write
LV Creation host, time localhost, 2019-11-04 16:59:22 +0800
LV Status available
# open 1
LV Size 525.50 GiB
Current LE 134528
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
root根目录VG是centos,查看vg信息可使用 vgdisplay
或 vgs
命令
创建PV(物理卷)
[root@rancher-server ~]# pvcreate /dev/vda3
Physical volume "/dev/vda3" successfully created.
将物理卷加入卷组(把PV加入VG中,相当于扩充VG的大小)
[root@rancher-server ~]# vgextend centos /dev/vda3
Volume group "centos" successfully extended
扩容(扩展LV)
lvextend -L +100MB /dev/mapper/centos-root # 按大小分配到/root分区
lvextend -L +10g /dev/mapper/centos-root # 按大小分配到/root分区
lvextend -l +100%FREE /dev/mapper/centos-root # 全部分配/root分区
xfs_growfs /dev/mapper/centos-root # 刷新根分区容量
df -h # 查看
把vdb硬盘也扩容到root分区,重复扩容步骤就可以了,注意硬盘标识。
pvcreate /dev/vdb
vgextend centos /dev/vdb
lvextend -l +100%FREE /dev/mapper/centos-root
xfs_growfs /dev/mapper/centos-root
通过上面的步骤已实现
root
根目录扩容,下面是可能会用到的更多命令说明
命令 | 作用 |
---|---|
vgcreate | 创建新的vg组 |
lvcreate | 在新的vg中创建新的lv,但是要指定对vg名字 |
vgremove | 删除vg |
vgreduce | 把pv从vg中移除,若vg中只有一个pv则直接使用vgremove |
mkfs | 把磁盘分区格式化为指定的文件系统,比如:xfs、ext4 |
mount | 分区挂载 |
创建pv
pvdisplay # 显示物理卷的属性
pvcreate /dev/vdb # 将物理硬盘分区初始化为物理卷,以便被LVM使用
创建vg
vgdisplay # 用于显示LVM卷组的元数据信息
vgcreate vgvar /dev/vdb # 用于创建LVM卷组
创建lv
lvdisplay # 显示LVM逻辑卷空间大小、读写状态和快照信息等属性
lvcreate -L 2G -n lv_2 vg_1 # 创建一个指定大小的lv,并指定名字为lv_2
lvcreate -l 100%VG -n lv_3 vg_1 # 创建一个占全部卷组大小的lv,并指定名字为lv_3(注意前提是vg并没有创建有lv)
lvcreate -l 80%Free -n lv_4 vg_1 # 创建一个空闲空间80%大小的lv,并指定名字为lv_4(常用)
mkfs -t xfs /dev/vdb # 格式化磁盘分区并指定文件系统类型为xfs
mkfs -t xfs /dev/mapper/data-data # 格式化lvm逻辑分区并指定文件系统类型为xfs
mount /dev/vdb /mnt # 将分区挂载到 /** 目录
修改 /etc/fstab
即可
[root@rancher-control-1 ~]# cat /etc/fstab
# /etc/fstab
# Created by anaconda on Thu May 9 01:56:05 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
UUID=a83f4fdc-2ea1-4fec-a1e2-a42016ce0afe / xfs defaults 0 0
UUID=9e33bd6f-c68c-41c7-95c8-703f4fe8c3d4 swap swap defaults 0 0
UUID=10116334-fc34-416b-b2f8-60bde984f5d4 /data xfs defaults 0 0
配置解释:
要挂载的设备或伪文件系统 | 挂载点 | 文件系统类型 | 挂载选项 | 转储频率 | 自检次序 |
---|---|---|---|---|---|
UUID=10116334-fc34-416b-b2f8-60bde984f5d4 | /data | xfs | defaults | 0 | 0 |
# UUID=10116334-fc34-416b-b2f8-60bde984f5d4 /data xfs defaults 0 0
# 要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序
配置参数解释:
参数 | 解释 |
---|---|
要挂载的设备或伪文件系统 | 设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc, sysfs) |
挂载点 | 指定的文件夹 |
文件系统类型 | 如:xfs、ext4等 |
挂载选项 | defaults |
转储频率 | 0:不做备份 1:每天转储 2:每隔一天转储 |
自检次序 | 0:不自检 1:首先自检;一般只有rootfs才用1; |
挂载
修改完 /etc/fstab
文件后,运行如下命令实现开机挂载
mount -a # 挂载fstab中提到的所有文件系统
df # 查看挂载
reboot # 重启,再次查看