centos

sys.8.1 LVM2 (Logical Volume Manager , Version 2)

 

LVM : Logical Volume Manager , Version 2

LVM使用的是内核模块’dm’;
‘dm’全称为 device mapper , 设备映射,将一个或多个底层块设备组织成一个逻辑设备的模块;

1、基本概念
PE : Phsical Extent , 物理盘区,默认大小为4M;PV 加入 VG 时可自定义此值的大小;
LV : 逻辑卷
VG : 卷组
PV : 可以在分区、磁盘、RAID上创建;

/dev/dm-# : 源设备文件;
/dev/mapper/VG_NAME-LV_NAME : 符号链接文件,目标指向源设备文件 ‘/dev/dm-#’;
/dev/VG_NAME/LV_NAME : 符号链接文件,目标指向源设备文件 ‘/dev/dm-#’;

[root@kouyuushinn ~]# ll /dev/mapper/
total 0
lrwxrwxrwx 1 root root       7 May  7 11:35 centos-root -> ../dm-0
lrwxrwxrwx 1 root root       7 May  7 11:35 centos-swap -> ../dm-1
crw------- 1 root root 10, 236 May  7 11:35 control
[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# ll /dev/centos/
total 0
lrwxrwxrwx 1 root root 7 May  7 11:35 root -> ../dm-0
lrwxrwxrwx 1 root root 7 May  7 11:35 swap -> ../dm-1
[root@kouyuushinn ~]#

2、PV管理命令
pvs :   简明显示pv信息;
pvdisplay :   详细显示pv信息;
pvdisplay    /dev/DEVICE :   指定块设备显示pv详细信息;

pvcreate    /dev/DEVICE … :   创建PV;
pvremove   /dev/DEVICE … :   移除PV;
pvmove :   把PV上的PE移动到另一个PV中;

3、VG管理命令
vgcreate : 创建VG;
vgcreate   -s   PE数值   VG_NAME   /dev/DEVICE   :   ‘-s’ 指定PE大小,单位可以是M,G等,默认为4M;还需指定PVNAME;

vgrename    OLD_VG_NAME    NEW_VG_NAME    :   重命名VG
vgremove   :   删除VG

vgextend   VG_NAME   /dev/DEVICE   :   扩展VG;
vgreduce   VG_NAME   /dev/DEVICE   :   缩减VG;先要移动PE(pvmove /dev/DEVICE),再缩减VG;

vgs : 简明查看VG信息
vgdisplay   VG_NAME   :   详细查看VG信息

4、LV管理命令

lvcreate   -L   #[mMgGtT]   -n   LV_NAME VG_NAME   :   创建LV;
说明:
-L   #[mMgGtT]   :   指定LV的大小,’#’表示数字,后面跟单位;
-n   LV_NAME VG_NAME  :   创建LV的名字,后面跟VG_NAME,指定属于哪个VG;

lvremove : 移除LV;

lvrename : 重命名LV;

lvextend    -L    #[mMgGtT]    /dev/VG_NAME/LV_NAME    :  扩展LV;扩展到’#’容量大小;
lvextend    -L    +#[mMgGtT]    /dev/VG_NAME/LV_NAME  :  扩展LV;在原有容量基础上增加了’#’容量大小;
扩展了LV后,需要更新文件系统的大小,使用下面命令(此命令只使用’ext’系列的文件系统格式):
resize2fs    /dev/VG_NAME/LV_NAME

lvreduce : 缩减LV;
操作次序:先’umount’  LV ; 然后强制检测LV,然后缩减文件系统,接着缩减LV,最后重新挂载[备注,’e2fsck’,’resize2fs’只适用于’ext’文件系统];
umount    /dev/VG_NAME/LV_NAME
e2fsck    -f    /dev/VG_NAME/LV_NAME
resize2fs    /dev/VG_NAME/LV_NAME   #[mMgGtT]                         缩减至多大容量;
lvreduce    -L     [-]#[mMgGtT]     /dev/VG_NAME/LV_NAME          不带’-‘号表示缩减到,带’-‘号表示减少了;
mount     /dev/VG_NAME/LV_NAME       mount_point

lvs : 简明查看LV信息;
lvdisplay    /dev/VG_NAME/LV_NAME   :   详细查看指定的LV信息;

5、文件系统的挂载使用

光盘设备文件标识:
IDE : /dev/hdc
SATA : /dev/sr0

光盘设备的符号链接文件:
/dev/cdrom
/dev/cdrw
/dev/dvd
/dev/dvdrw

6、dd命令

dd  –  convert  and  copy  a  file
转换和复制文件;

命令用法:
dd    if=/PATH/ROM/SRC     of=/PATH/TO/DEST     bs=#     count=#

参数说明:
bs=#        :    block size , 指定复制单元大小,单位是字节;即从源文件中复制多少字节内容到目标文件;
count=#  :    复制多少个’bs’;

dd命令通常用作如下应用
磁盘拷贝 : dd    if=/dev/sda     of=/dev/sdb
备份MBR : dd    if=/dev/sda     of=/data/mbr.bak     bs=512    count=1

linux的2个特殊设备:
/dev/null : 数据黑洞,所有转入这个设备的数据都将丢弃;
/dev/zero : 无限产生数字0的设备;

dd命令举例:
-----------
[root@kouyuushinn test]# 
[root@kouyuushinn test]# ll
total 4
-rwxr-xr-x 1 root root 683 May  6 20:14 six.sh
[root@kouyuushinn test]# 
[root@kouyuushinn test]# dd if=six.sh of=aa bs=20  count=10
10+0 records in
10+0 records out
200 bytes (200 B) copied, 0.000139188 s, 1.4 MB/s
[root@kouyuushinn test]# 
[root@kouyuushinn test]# ll
total 8
-rw-r--r-- 1 root root 200 May  8 01:58 aa
-rwxr-xr-x 1 root root 683 May  6 20:14 six.sh
[root@kouyuushinn test]# 
[root@kouyuushinn test]# dd if=six.sh of=bb  bs=200  count=2
2+0 records in
2+0 records out
400 bytes (400 B) copied, 0.000102895 s, 3.9 MB/s
[root@kouyuushinn test]# 
[root@kouyuushinn test]# ll
total 12
-rw-r--r-- 1 root root 200 May  8 01:58 aa
-rw-r--r-- 1 root root 400 May  8 01:58 bb
-rwxr-xr-x 1 root root 683 May  6 20:14 six.sh
[root@kouyuushinn test]#

======================================================

======================================================

A.创建LVM完整流程
—————-
先创建分区,文件系统格式指定为’8e’;

~]# pvcreate    -v    /dev/sdb11                          创建PV,-v选项表示显示创建过程;

~]# vgcreate    lucifer    /dev/sdb11                 创建VG;

~]# lvcreate     -L    200M    -n    lv11      vglucifer             创建LV;

~]# mkfs.ext4    -b    1024    -L    lvlabel     /dev/vglucifer/lv11                 格式化LV;
~]# mount      /dev/vglucifer/lv11        /lvdata                                           挂载LV;把UUID信息写入’/etc/fstab’,开机可自动挂载;

查看及管理类操作:
~]# pvdisplay    /dev/sdb11              指定块设备,显示 PV 信息;
~]# vgdisplay    lucifer                       指定块设备,显示 VG 信息;
~]# vgrename    lucifer     vglucifer       重命名VG;
~]# lvdisplay    /dev/vglucifer/lv11      查看指定的LV信息;

B. 扩展VG操作:
———–
~]# pvcreate     /dev/sdb12                   先看系统是否有尚未加入任何VG的PV,如果没有,则查是否还有可用资源以创建新的PV;
~]# vgextend    vglucifer     /dev/sdb12           扩展VG,需指定VG_NAME , PV;

C. 缩减VG、移除PV操作(注意操作次序):
——————-
~]# pvmove     /dev/sdb11
~]# vgreduce    vglucifer    /dev/sdb11

~]# pvremove    /dev/sdb11        VG移除PV后,才可以删除PV;

D. 扩展LV逻辑卷操作(先扩展LV,再更新文件系统):
——————-
~]# lvextend    -L    600M     /dev/vglucifer/lv11
~]# resize2fs     /dev/vglucifer/lv11

E. 缩减LV逻辑卷操作次序
1.用命令’umount’卸载LV;
2.用命令’e2fsck’强制检查LV;
3.用命令’resize2fs’缩减文件系统;
4.用命令’lvreduce’缩减LV; 此步骤有交互式问答,需要人为确认;
5.用命令’mount’重新挂载LV;

~]# umount    /dev/vglucifer/lv11
~]# e2fsck    -f    /dev/vglucifer/lv11
~]# resize2fs    /dev/vglucifer/lv11     550M
~]# lvreduce    -L    550M     /dev/vglucifer/lv11
~]# mount    /dev/vglucifer/lv11     /lvdata

F. LVM的快照功能
给某个LV做快照的时候,快照卷必须跟原LV卷同属一个VG内,不能跨文件系统(不能跨分区);
快照刚创建时,默认是没有任何数据的;
当原LV卷的文件的内容发生变化时,快照会记录文件发生变化前的状态(从原LV卷中复制变化前的文件至快照中);
当原LV卷中有新增的文件时,快照内是不会备份此文件,只记录快照创建后,原LV卷内的原文件有发生变化的文件;

lvcreate    -s    -L    #[mMgGtT]    -p    r    -n    SNAPSHOT_LV_NAME     /dev/VG_NAME/LV_NAME

-s   :   表示对某个逻辑卷LV创建快照;
-L    #[mMgGtT]   : 表示创建的快照的大小,一般设置成跟LV同样容量;
-p    r  : 表示快照是只读的;
-n     SNAPSHOT_LV_NAME   :   指定要创建的快照的名称;
/dev/VG_NAME/LV_NAME   : 指定原LV卷的名称,必须是完整的路径;

快照卷也可以挂载到系统中,当快照内的文件做了备份后,可以卸载快照卷;

G. 卸载LVM(卸载LV,VG,PV):做卸载操作必须要备份数据;
~]# umount    /dev/VG_NAME/LV_NAME
~]# lvremove    /dev/VG_NAME/LV_NAME
~]# vgremove    VG_NAME
~]# pvremove    /dev/DEVICE

Leave a Reply

Your email address will not be published. Required fields are marked *