linux LVM
LVM: Logical Volumn Manager将一个或多个底层块设备组织一个逻辑的工具
Block Devices:
Pysical Extent
PE: 大小固定
存储空间边界:
物理边界:
逻辑边界
逻辑卷:
扩展:物理 --> 逻辑
缩减:逻辑 --> 物理
ps: 缩减不能少于已经存储的所有数据空间的大小
逻辑卷创建
LVM: 块设备:分区,RAID pv --> vg --> lv pv: pvcreate, pvs, pvdisplay, pvremove, pvmove, pvscan vg: vgcreate, vgs, vgdisplay, vgremove, vgextend, vgreduce, vgscan lv: lvcreate, lvs, lvdisplay, lvremove, lvextend, lvreduce, lvscan 例如:10G的vg, 1:10G PV 2: 3+7G PV 创建逻辑卷:lvcreate -n lv_name -L #UNIT {mMgGtT} VG_NAME lv的访问路径: 1、/dev/VG_NAME/LV_NAME /dev/myvg/mylv 2、/dev/mapper/VG_NAME-LV_NAME /dev/mapper/myvg-mylv 此两者均为符号链接,指向的文件为/dev/dm-# 如何扩展逻辑卷: 1、先确定扩展的目标大小;并确保对应的卷组中有足够的空闲空间可用; 2G, 目标为4G +2G 4G 2、扩展物理边界 lvextend -L 4G /dev/myvg/mylv 3、扩展逻辑边界 resize2fs /dev/myvg/mylv 缩减很危险!缩减要离线 1、先确定缩减后的目标大小;并确保对应的目标逻辑卷大小中有足够的空间可容纳原有所有数据; 2、先制裁文件系统,并要执行强制检测 e2fsck -f 3、缩减逻辑边界 resize2fs DEVICE 4、缩减物理边界 lvreduce 创建快照卷: lvcreate -L -n -s -p r 注意:快照卷是对某逻辑卷进行的,因此必须跟目标逻辑卷在同一个卷组中;无须指明卷组;
dd 命令
if=/path/to/src_file of=/path/to/dest_file bs=256K count=# 100M dd if=/dev/zero of=/dev/sdb bs=512 count=1 /dev/null: 吞进所有数据,直接丢弃 /dev/zero: 泡泡机,吐零 dd if=/dev/sdb of=/backup/mbr.backup bs=1 count=512 dd if=/backup/mbr.backup of=/dev/sdb bs=512 count=1 swap空间吃紧,创建新的swap设备
示例
1、创建一个由至少两个物理卷组成的大小为10G的卷组;要求,PE大小8M;而后在卷组中创建大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录; 2、新建用户mageedu,其家目录为/users/mageedu,而后su至mageedu用户,复制/etc/fstab文件至自己的家目录; 3、扩展mylv1至7G,确保/users/mageedu的数据不受影响;而后su至mageedu用户,验正数据可正常访问; 4、缩减mylv1至4G,确保/users/mageedu的数据不受影响;而后su至mageedu用户,验正数据可正常访问; 5、对mylv1创建快照卷snap-mylv1,并通过其cp内部的数据至/backups/目录中,要求保留原有属主属组等信息;