您的位置:首页 > 运维架构 > Linux

linux基础(十六)LVM

2011-05-19 19:04 447 查看
本片主要是学习lVM(逻辑磁盘管理器)的使用;他可以LV可以在不用重启系统的情况动态增加可用空间大小。这样我们在提供不间断的服务器上的使用有了很大的方便。
首先需要弄懂几个概念:
物理介质:就是我们通常说的硬盘,简称pm
物理卷:就是我们通常说的硬盘分区,简称pv
物理分区:它是由LVM命令在物理卷上创建的最小LVM寻址单元,在创建物理卷时可以指定物理分区的大小,默认值是4M,简称pe
卷组:由一个多多个物理卷组成的逻辑单元,简称vg
逻辑分区:它与物理分区一一对应,大小相等,简称le
逻辑卷:从卷组中分配一定大小的空间创建的逻辑单元,也可以使用一个完整的卷组空间大小来创建一个逻辑卷,简称lv
明白了概念后就开始我们的创建和管理:
创建顺序:pv-----vg-----lv
举例说明:首先我们准备好分区或硬盘,这里是示例是以分区为基础的。
我现在重新加载了一块硬盘开始分区:分为/dev/sdb1,/dev/sdb2,/dev/sdb3三个分区每个分区都是2G大小
#fdisk
/dev/sdb
回车,输入n(创建一个新分区),回车,输入p(创建一个主分区),回车,输入1(主分区号),回车,回车(输入分区起始地址,默认1),然后输入+2G,输入t(修改分区类型,默认是83),回车,输入8e(Linux LVM分区类型),依次建立三个分区,然后输入p查看
Device Boot Start End Blocks
Id System
/dev/sdb1 1 244
1959898+ 8e Linux LVM
/dev/sdb2 245 488
1959930 8e Linux LVM
/dev/sdb3 489 732
1959930 8e Linux LVM
可以看到我们建立的分区都准备好了格式也正确,注意的是分区的格式必须是LVM(8e)的格式。
下来我们创建物理卷pv:
#pvcreate /dev/sdb1
#pvcreate /dev/sdb2
#pvcreate /dev/sdb3
当我们创建成功时会返回这样一个结果:“Physical volume "/dev/sdb3" successfully created”
接下来创建卷组vg:格式:vgcreate 卷组名
分区
#vgcreate myvol /dev/sdb1
#vgcreate ftp /dev/sdb2
注意:创建卷组时如果使用默认的参数,最后在此基础上创建逻辑卷时会有大小限制,默认最大不能超过256G,如果在系统中规划逻辑卷大小会超过256G时,那么在创建卷组时就要使用参数-s并指定一个分为大小,如32M,这样创建的卷组就可以容纳2T的逻辑卷了
当有多个成员时可以使用空格隔开
这样就创建了两个卷组接下来就可以创建逻辑卷了lv:
格式:lvcreate –L(卷大小) –n(逻辑卷名字) 卷组名
这里文明先针对myvol卷创建一个大小500M的逻辑分区,对ftp卷创建一个大小也是500M的逻辑卷
lvcreate –L500M –nlvm myvol
lvcreate –L500M –nftp ftp
到此为止我们的逻辑卷才算创建成功,这和洽谈分区一样要想适应都必须格式化和挂载
#mkfs.ext3 –j /dev/myvol/lvm
#mkfs.ext3 –j /dev/ftp/ftp
#mkdir /ftp /lvm 建立挂载点
#mount /dev/myvol/lvm /lvm
#mount /dev/ftp/ftp /ftp 挂载
我们可以cd到挂在目录上。使用ls查看是否挂载成功,出现“lost+found”文件夹即为成功
这是就可以向逻辑卷里写入数据了。
但是也会遇到这样的情况就是我们的逻辑分区的大小不够用了就需要扩展lv的大小使用lvextend命令lvextend –L(大小) 逻辑卷名改变大小可以使用+ - 或者直接跟以数值,各自的意义又不同,+:表示在原来的基础上增加多大,具体数值:表示增加(减少)到多大,-:减小多少
上面我们为lvm卷分了500M的空间,但是不够用就需要扩容到1G,
所以使用命令
#lvextend –L+500M /dev/myvol/lvm
但是我们使用df –h查看大小并没有增加,还需要另一个命令resize2fs /dev/myvol/lvm这是在使用df –h查看就是1G的大小了,这个可以在线增大的空间的。
#resize2fs /dev/myvol/lvm
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/myvol/lvm is mounted on
/lvm; on-line resizing required
Performing an on-line resize of
/dev/myvol/lvm to 1024000 (1k) blocks.
The filesystem on /dev/myvol/lvm is now
1024000 blocks long
当我们逻辑卷的空间太大时就需要缩减。缩减比增大有点麻烦的事必须先卸载,还要检查数据的完整性后才可以缩减
示例还是缩减lvm卷,原来是1G现在缩减至600M使用下列命令:值得注意的是一定要检查下数据的完整性
#mount /lvm
#e2fsck –f /dev/myvol/lvm
#resize2fs /dev/myvol/lvm 600M
#lvreduce –L600M /dev/myvol/lvm
使用df –h可以看到我们的缩减成功了。
注意:减小LV可能会造成数据丢失,所以先要做一次全备份,然后卸载掉文件系统,再进行操作。
但是还有这样的情况就是我们卷组的空间用完了,这就需要增加组员来扩大空间:我们将未使用的/dev/sdb3加入到ftp卷组中:格式:vgextend 卷组
成员
#vgextend ftp /dev/sdb3
这样就将成员加入到了卷组中卷组的空间增大了,但是我们怎么样移除一个卷组成员呢?我们写数据时是向逻辑卷里写入的,逻辑卷不会管下层的设备的可能会向每个卷组成员里都写入的数据的,要是贸然的去移除时可能导致数据丢失,这时我们可以将我们要移除的设备里的数据导出,然后再移除:
#pvmove /dev/sdb2 将数据移到另一个成员上
#pvreduce ftp /dev/sdb3
我们不使用逻辑卷时删除的方法和创建时正好相反先是:LV---VG---PV
这里我们还要讲下逻辑卷另一个不错的功能,可以做快照,目的是想对逻辑卷进行一致性备份,由于它采用了写时复制技术,使得不用停止服务或将逻辑卷设为只读进行备份,因为备份时文件可能正在被写入数据,如数据库文件,LVM提供的快照功能只是记录了文件系统的改变,它并不是对整个文件系统进行备份
用法:lvcreate -L(大小) -s -p r -n(快照名) 针对哪个逻辑卷名
这里的大小不一定要和原分区一样大,-s:是做快照,-p r 意思是只读的方式访问快照
例我们针对ftp做快照
lvcreate -L200M -s -p r -nftpsnap
/dev/ftp/ftp
然后挂载开始备份,备份后就要卸载,然后删除快照
#mkdir /snap
#mount /dev/ftp/ftpsnap /snap
#cd /snap 我们对原数据的改动不会影响快照内
#tar –jcf
/ftp.tar.bz2 ./* 的内容
#umonut /snap
#lvrmove /dev/ftp/ftpsnap 备份完后删除快照
在实际的应用中,随着时间的累积家目录里会存储大量的数据,导致空间不够用,这时就想到使用LVM来管理/home目录,这里简单的做个示例:
步骤,先建立个逻辑卷,然后把home里是数据导入到新建的逻辑卷里说着简单我这里简单的演示下过程:
#pvcreate /dev/sdb3
#vgcreate myhome /dev/sdb3
#lvcreate -L1G -nmyhome myhome
#mkfs.ext3 -j /dev/myhome/myhome
#mkdir /home-new
#mount /dev/myhome/myhome /home-new
#cp –avx /home/* /home-new
#mv /home /home-old
#umount /home-new
#mv /home-new /home
#mount /dev/myhome/myhome /home
到此为止要是不出意外我们就将/home目录转化成LVM可管理增大或减小空间的逻辑卷了。
这里简单罗列些有关的命令:
关于pv的:
pvcreate:创建物理卷pvmove pvremove
pvscan:扫描pv设备 pvdisplay:列出pv信息
有关vg的:vgcreate vgmove vgremove vgscan vgdisplay vgdruce:缩减vg vgchange:改变vg状态 vgextend:扩展vg vgexport:注销卷 vgimport:注册卷
有关lv的:lvcreate lvmoove lvremove lvscan lvdisplay lvextend lvreduce
例:将硬盘移到另一主机上
#vgchange –a n ftp 表示:将卷组ftp设置成不可用
#vgexport
ftp 表示:从园主机系统上注销卷组
在另一主机上:#vgimport ftp /dev/sda1 注册卷组
#vgchange –a y ftp 表示激活
需要注意的是:1,/boot不能使用LV,系统启动时还来不及加载LV驱动。
2、增加或减少LV空间大小时,保险起见要先umount文件系统,同时检查下文件的一致性,再执行增加或减少命令,那么根文件系统使用LV时就不应该做增大或变小操作,因为无法umount根文件系统
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息