LVM
Logical Volume Manager(逻辑卷管理)
是Linux环境下对底层磁盘的一种管理机制(方式),处在物理磁盘和文件系统之间.
名词:
PV (Physical Volume)物理卷
VG (Volume Group)卷组
LV (Logical Volume)逻辑卷
最小存储单元:总结
名称 最小存储单位
硬盘 扇区(521字节)
文件系统 block(1K或4K)
raid chunk(521K) mdamd -c 命令可以指定大小
LVM PE(16M自己定义)
实验开始:
1.准备工作 分区 fdisk /dev/sdb (3个)
2.制作PV #pvcreate /dev/sdb{1,2} #就是把物理磁盘分区做成物理卷
3.制作VG #vgcreate Vg1 /dev/sdb1 /dev/sdb2 #都把生产好的PV统一加入一个组里面Vg1,进行下一步的重新分区等..
4.制作LV #lvcreate -n LV1 -L 1.5G Vg1 # -n 指lv的name # -L指定大小 (在Vg1组里面分多少给LV1)
创建指定PE的VG: #vgcreate -s 16M Vg1 /dev/sdb1 /dev/sdb2
格式化挂载使用:
#mkfs.ext4 /dev/Vg1/LV1
#mount /dev/Vg1/LV1 /opt/
各种查看命令
#pvs #pvscan #pvdisplay
#vgs #vgscan #vgdisplay
#lvs #lvscan #lvdisplay
扩展:
#lvextend -L +300M /dev/Vf1/LV1 #加300M空间
#df -h #发现空间没变 ,上面只是扩展了LVM,没有扩展上层的文件系统,所以扩展了LV,在扩展文件系统的(重置刷新)
centos6 : #resize2fs /dev/Vg1/LV1
centos7: #
CentOS7.0的默认文件系统类型是 Xfs 其对应的调整命令是 xfs_growfs 不同文件系统类型对应的创建、检查、调整命令不同,要注意区分。
运行了上面的命令,就算扩容好了.
下面是 VG的扩展(新加硬盘sdb3):
#vgextend Vg1 /dev/sdb3
#pvs #查看sdb3已经在列表了
LV缩减:将逻辑卷LV1缩减
lvm支持在线缩小,但是ext4文件系统不支持在线缩小,btrfs支持在线缩小.
Btrfs简介:一直使用ext2/3,ext文件系统以其卓越的稳定性成为了事实上的Linux标准文件系统,今年来ext2/3暴露出了一些扩展性问题,于是便催生了ext4,(过渡) ext4作者也盛赞brtfs并将成为下一代Linux标准文件系统.
Btrfs的特性:
首先,扩展性(scalability)相关的特性,btrfs最重要的设计目标是应对大型机器对文件系统的扩展性要求,整体性能而不会随着系统容量的增加而降低.
其次是数据一致性(data integrity)相关的特性.
第三是和多设备管理相关的特性,Btrfs支持创建快照(snapshot)和克隆(clone).
最后,这些特性是比较先进的技术,能够显著提高文件系统的时间,空间性能,包括延迟分配,小文件的存储优化,目录索引等.
缩减例子:
#resize2fs /dev/Vg1/LV1 1000M #ext4格式 直接输入提示在线缩减不支持 所以先umount 卸载
正确步骤:
#umount /opt/ #先卸载挂载
#e2fsck -f /dev/Vg1/LV1 #检查文件系统有啥错误
#resize2fs /dev/Vg1/LV1 1000M #centos 6
#lvreduce -L 1000M /dev/Vg1/LV1
#mount ... #把缩小的挂载上
扩文件系统:先扩LVM,然后扩文件系统 缩减文件系统,先缩减文件系统,在把LVM缩小
VG缩减:
缩减时,可以不卸载正在使用中的LV.另外,只能缩减没有被使用的pv,否则会提示一下内容:
(使用中... Physical volume "/dev.sdb1" still in use)[如果执意想缩减,先把sdb1逻辑卷干掉]
#vgreduce Vg1 /dev/sdb1
LVM删除:先umount 然后删除(从上往下lv-vg-pv)
#lvremove /dev/Vg1/LV1 #删除逻辑卷
#vgremove Vg1 #删除卷组
#pvremove /dev/sda5 #删除物理卷
LVM快照功能:
两大功能1.克隆虚拟机2.实时备份
原来有一个lv的基础上
#lvcreate -s -n lv_NAME_bak -L 200M /dev/Vg1/LV1
#创建一个名字为Lv_NAME_bak,大小为200M的快照 -s 是快照snapshot,-n是name
#lvs
LVM分配限额:
限制用户和组对硬盘的使用
需要按照的包#rpm -q quota
1.启用quota磁盘配额功能
分区格式化后挂载:#mount /dev/sdb3 /tmp/sdb3/
#mount -o remount,usrquota,grpquota /tmp/sdb3/
#mount 查看
/dev/sdb3 on /tem/sdb3 type ext4 (rw,usrquota,grpquota)
其实上面磁盘已经支持限额了,但是还有一点,就是让这个lv开机也自动挂载(原来讲过)
#vim /etc/fstab
/dev/sdb3 /tmp/sdb3 ext4 defaults,usrquota,grpquota 0 0
---上面准备工作已经做好
3.检查磁盘配额并生产配额文件
#quotacheck -cugv /tmp/sdb3
完了后,目录里面多了2个配置文件(aquota.group 和aquota.user)
注:这个操作要关闭selinux. setenforce 0 #关闭selinux
#getenforce #查看
更改:#vim /etc/selinux/config
4.用户和组账号的配额设置
#useradd mk #创建用户,建立用户会建立同名组
#eduota -g mk #给这个用户组设置配额,会调出vi编辑器,进行编辑
5.激活磁盘配额
#quotaon -ugv /tmp/sdb3
6.验证
#mkdir /emp/sdb3/test
#chmod 777 /emp/sdb3/test
#su -mk #切换到这个用户下
#cd /tmp/sdb3/test
#dd if=/dev/zero of=mk.txt bs=1K count=70
#rm -rf mk.txt