查看磁盘使用情况
lsblk
可以看到有一个磁盘sdb1未使用
查看磁盘分区情况
fdisk -l
主要查看磁盘路径
查看 /dev/sdb1分区
fdisk /dev/sdb1(进去之后按p,按w保存并退出)
对 /dev/sdb1分区
fdisk /dev/sdb1(对磁盘/dev/sdb1进行分区,进去之后依次按n,p,回车,回车,回车,w;默认的分区类型为83)
删除磁盘/dev/sdb1上的某个分区
fdisk /dev/sdb1(进去之后按d,输入想删除的分区号,只有一个分区会跳过这步自动删除,按p打印分区信息,按w保存并退出)
LVM的原理
要想理解好LVM的原理,我们必须首先要掌握4个基本的逻辑卷概念。
①PE (Physical Extend) 物理拓展
②PV (Physical Volume) 物理卷
③VG (Volume Group) 卷组
④LV (Logical Volume) 逻辑卷
我们知道在使用LVM对磁盘进行动态管理以后,我们是以逻辑卷的方式呈现给上层的服务的。所以我们所有的操作目的,其实就是去创建一个LV(Logical
Volume),逻辑卷就是用来取代我们之前的分区,我们通过对逻辑卷进行格式化,然后进行挂载操作就可以使用了。
pvcreate /dev/sdb1 /dev/sdc1(创建物理卷,可通过pvdisplay 查看,删除可通过pvremove -f pvname)
pvs(查看所有物理卷)
vgcreate data /dev/sdb1 /dev/sdc1(创建卷组,可通过vgdisplay 查看,减少可通过vgreduce data /dev/sdb1,删除可通过vgremove -f vgname)
lvcreate -n mylv -L 99G data(创建逻辑卷,可通过lvdisplay 查看,减少可通过lvreduce -n mylv -L 99G data,删除可通过lvremove -f lvpath)
我们已经创建好了我们的PV、VG以及LV,这时候我们如果要使用逻辑卷,就必须将其格式化成我们需要用的文件系统,
并将其挂载起来,然后就可以像使用分区一样去使用逻辑卷了
mkfs.ext3 /dev/data/mylv(格式化文件系统)
格式化我们的逻辑卷以后,就可以使用 mount 命令将其进行挂载,我们将其挂载到 /data11 目录下, data11目录是我提前创建好的
mount /dev/data/mylv /data11挂载
修改/etc/fstab文件,让其开机自动挂载
vim /etc/fstab 按G 跳到最后一行加入如下内容
“/dev/data/mylv /data11 ext3 defaults 0 0”
====================================================================
到这里我们就实现了二合一的使用,但是如果我们后期还要继续添加硬盘 ↓ ↓ ↓
假设我们再增加一块硬盘为 /dev/sdd1
pvcreate /dev/sdd1
vgextend data /dev/sdd1(data是VG Name,根据实际情况而定)
lvextend -l +100%FREE /dev/data/mylv(/dev/data/mylv是LV Path,根据实际情况而定)
到这里 df -Th查看我们的挂载盘发现容量还是未增加
则需要刷新一下挂载盘,根据文件系统类型的不同,刷新命令有所不同
df -Th 查看文件系统类型type
resize2fs 针对文件系统ext2 ext3 ext4
xfs_growfs 针对文件系统xfs
resize2fs /dev/data/mylv
或者
xfs_growfs /dev/data/mylv
之后就会发现挂载盘的容量也得到扩容了 实现了 二加一的扩容
下面我们来对整个LVM的工作原理进行一个总结:
(1)物理磁盘被格式化为PV,空间被划分为一个个的PE
(2)不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内
(3)LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘
(4)LV现在就直接可以格式化后挂载使用了
(5)LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据
====================================================================
mount挂载
mount /dev/sdb1 /data
====================================================================
卸载挂载:
umount -v /dev/sdb1(通过设备名卸载,设备名即分区名)
umount -v /data(通过挂载点卸载,挂载点即挂载目录)
注:如果执行以上命令显示设备正忙,卸载即告失败。卸载失败的常见原因是,某个打开的shell当前目录为挂载点里的某个目录:
错误信息:umount: /dev/sdb1: device is busy
解决办法:
fuser -mv /dev/sdb1(找到ceph 进程号 F…那一行或者 C…那一行)
kill -9 进程号
fuser -mv /dev/sdb1(查看是否杀死)
umount -v /dev/sdb1(再次卸载)