linux-磁盘管理篇
linux的磁盘篇
一. lvm的应用场景及其弊端
- 应用场景:
- 随着公司的发展,数据增长较快,最初规划的磁盘容量不够用了
- 弊端:
- 数据不是直接存放在硬盘上,而是在硬盘的上面又虚拟出来一层逻辑卷存放数据,故而增加了磁盘数据恢复的难度
二. 物理卷、卷组、逻辑卷
- 物理卷(PV):把常规的块设备(硬盘,分区等可以读写数据的设备)通过pvcreate命令对其进行初始化,就成了物理卷
- 卷组(VG):把多个物理卷的容量组成一个逻辑整体,可以从里面灵活分配容量
- 逻辑卷(LV):从卷组中划分部分空间成为一个可以读写数据的逻辑单元。需要对其格式化然后挂载使用
三. LVM管理
3.1 部署LVM
-
创建lvm步骤:
- a) 添加物理磁盘,创建物理卷
- b) 创建卷组,将物理卷加入卷组
- c) 在卷组中划分逻辑卷
- d) 格式化逻辑卷
- e) 挂载使用
-
使用到的命令
- Pvcreate 硬盘的位置;如/dev/sdb 创建物理卷-也就是将硬盘加入物理卷初始化
- Vgcreate 物理卷的位置,如pv1 创建卷组,将物理卷加入到卷组中进行统一分配管理。
- Lvcreate -n lv-name -L +5G空间大小 vg0对应的vg设备。
配置逻辑卷,将卷组的空间分配给新的逻辑卷,类似硬盘上的分区,当逻辑卷创建好后就可以挂载设备进行使用。
- Pvs查看物理卷
- Vgs查看卷组
- Lvs 查看逻辑卷
-
都可以通过pvdisplay-vgdisplay-lvdisplay可以查看详细信息
-
//1.准备物理磁盘(查看物理磁盘)
[[email protected] ~]# lsblk |grep “sd[bcd]”
sdb 8:16 0 1G 0 disk
sdc 8:32 0 1G 0 disk
sdd 8:48 0 1G 0 disk -
//1.将磁盘加入pv
[[email protected] ~]# pvcreate /dev/sdb
Physical volume “/dev/sdb” successfully created. -
//检查pv创建情况
[[email protected] ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 — 1.00g 1.00g -
//2.创建名为datavg的卷组
[[email protected] ~]# vgcreate datavg /dev/sdb
Volume group “datavg” successfully created -
//检查卷组
[[email protected] ~]# vgs
VG #PV #LV #SN Attr VSize VFree
datavg 1 0 0 wz–n- 1020.00m 1020.00m
//3.创建逻辑卷, 分配名称, 以及大小, 指定卷组
[[email protected] ~]# lvcreate -L 100M -n lv1 datavg
Logical volume “datalv1” created.
-
//检查逻辑卷
[[email protected] ~]# lvscan
ACTIVE ‘/dev/datavg/lv1’ [100.00 MiB] inherit -
//4.格式化文件系统
[[email protected] ~]# mkfs.xfs /dev/datavg/lv1 -
//挂载并使用
[[email protected] ~]# mkdir /lv1
[[email protected] ~]# mount /dev/datavg/lv1 /lv1/
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
…
/dev/mapper/datavg-lv1 97M 5.2M 92M 6% /lv1
直接将挂载点写入配置文件中,
3.2 卷组管理
-
扩展卷组,将新磁盘加入卷组
-
新建物理卷pvcreate 硬盘的名称
-
通过vgextend扩展卷组的名 物理卷的位置
-
Lvextend -L +或-大小空间 逻辑卷的位置。
-
操作步骤
-
//1.新硬盘加入pv
[[email protected] ~]# pvcreate /dev/sdc -
2.使用vgextend扩展
[[email protected] ~]# vgextend datavg /dev/sdc
Volume group “datavg” successfully extended -
缩减卷组,将指定磁盘从卷组中删除
[[email protected] ~]# vgreduce datavg /dev/sdb
Removed “/dev/sdb” from volume group “datavg” -
数据迁移卷组,同一卷组的磁盘才可以进行在线迁移
-
//1.检查当前逻辑卷VG中PV使用情况
[[email protected] ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb vg1 lvm2 a – 2.00g 1.76g
/dev/sdc vg1 lvm2 a – 2.00g 2.00g -
//2.pvmove在线数据迁移至其他pv
[[email protected] ~]# pvmove /dev/sdb
/dev/sdb: Moved: 41.33%
/dev/sdb: Moved: 100.00% -
//3.检查是否将sdb数据迁移至sdc
[[email protected] ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb vg1 lvm2 a – 2.00g 2.00g
/dev/sdc vg1 lvm2 a – 2.00g 1.76g
-
3.3 逻辑卷管理
-
逻辑卷扩展,逻辑卷的扩展取决于卷组中的容量,逻辑卷扩展的容量不能超过卷组的容量
[[email protected] ~]# vgs(查看容量)
VG #PV #LV #SN Attr VSize VFree
vg1 2 2 0 wz --n- 1.88g 1.00g -
操作步骤
-
1.扩展lv逻辑卷
//增加800M分配给逻辑卷 {注意: 800M +800M 不一样}
[[email protected] ~]# lvextend -L +800M /dev/datavg/lv1
//分配磁盘池中多少百分比给逻辑卷
[[email protected] ~]# lvextend -l +50%FREE /dev/datavg/lv1-
2.扩展fs文件系统 ,不同的文件系统需要使用不同的文件系统来扩展并刷新分区大小。
-
//xfs扩容
[[email protected] ~]# xfs_growfs /dev/datavg/lv1 -
//ext扩容
[[email protected] ~]# resize2fs /dev/datavg/lv1
-
-
Pvmove /dev/sdb 迁移硬盘。
-
-
对ext4文件系统的逻辑卷裁剪容量
首先自己创建一个1G的逻辑卷作为裁剪的对象
lvcreate -n uplooking -L 1G finance
mkfs.ext4 /dev/finance/uplooking
mkdir -p /finance/uplooking
mount /dev/finance/uplooking /finance/uplooking/
cp /etc/host* /finance/uplooking/ -
-
具体步骤
-
1、如果已经挂载,必须先卸载
umount /dev/finance/uplooking -
2、裁剪容量,必须是先检测文件系统
e2fsck -f /dev/finance/uplooking
resize2fs /dev/finance/uplooking 512M -
3、调整完毕后采取裁剪逻辑卷容量
lvreduce -L 512M /dev/finance/uplooking
WARNING: Reducing active logical volume to 512.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce uplooking? [y/n]: y -
4、强烈建议裁剪后,再次检测文件系统,检测后测试
e2fsck -f /dev/finance/uplooking -
5、挂载测试
如果能够挂载,一般说明裁剪成功,文件系统没有损坏
mount /dev/finance/uplooking /mnt
…
/dev/mapper/finance-uplooking 472M 1.6M 435M 1% /mnt 而且文件系统容量被刷新了
-
-
缩减逻辑卷注意事项:
1,不能在线缩减,得先卸载;
2,确保缩减后的空间大小依然能存储原有的所有数据;
3,在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态。使用命令e2fsck -f /PATH/TO/LV
作业:
1.如何查看/etc/目录大小
2.如何查看磁盘使用分区情况
3.如何查看inode使用情况
4.如何查看磁盘block使用情况
5.如何查看分区使用格式
6.如何查看一个设备的UUID
7.请解释/etc/fstab中每段含义
UUID或者路径都是磁盘的设备分区。
然后是/下的路径文件的挂载点
然后是文件系统格式类型
然后是挂载参数
然后是不检查 ,0- 最早进行检验,1 -1级检验后完进行检验,2
然后是不备份,0 -每天进行备份,1-不定日期进行备份,2
8.一个ext4的文件分区,当使用touch test.file命令创建一个新文件是报错,报错的信息提示磁盘已满,但是采用df –h 命令查看磁盘大小时,只是用了60%的磁盘空间,为什么会出现这个情况,说说你的理由.
因为在磁盘的Inode节点中已经使用完毕,没有可以新增的节点来满足新文件的节点空间。
磁盘分区方案
在虚拟机中添加一块20GB的SCISI磁盘
在新硬盘中建立一个5GB的分区,一个10G的分区
一个格式化为ext4的文件系统, 一个格式化为xfs的文件系统
新建两个目录站点进行挂载, 要求开机自动挂载该分区
LVM磁盘管理方案
在虚拟机环境中,新添加两块SCISI硬盘设备,完成硬盘检测及分区
建立逻辑卷mbvg, 格式化为ext4文件系统, 分配1G逻辑分区供/box目录使用
第二块逻辑分区, 格式化为xfs文件系统, 分配1G逻辑分区供/xfs目录使用
最后使用扩容方案将/box站点扩展到2.8G磁盘使用空间, 将/xfs目录扩展到2G