手记

LVM简单使用


OS:ubuntu server 8.04.1

软件:LVS2

1。安装LVM:

apt-get install lvm-common lvm2 evms

只有安装了evms 才会有 vgdisplay、pvcreate这些命令~

2。新加一块硬盘`,如果用虚拟机的话就好说了,没有安装虚拟机的就用loopback做测试吧,我的是虚拟机,所以我就讲我的测试了。

3。格式化硬盘~ 

#fdisk /dev/sdb

回车,输入n(创建一个新分区),回车,输入p(创建一个主分区),回车,输入1(主分区号),回车,回车(输入分区起始地址,默认1),回车(输入分区结束地址,默认是整块硬盘的最后一数据块),输入t(修改分区类型,默认是83),回车,输入8e(Linux LVM分区类型),输入w(保存并退出),这样会创建/dev/sdb1分区,完全占用了硬盘/dev/hda的空间。

4.创建物理卷(简称PV)

#pvcreate /dev/sdb1

可以使用pvdisplay命令查看物理卷的详细信息。执行pvcreate命令后会向硬盘中写如pv信息,同时也会在/etc/lvm/backup目录下产生同样的pv信息文件。

5。创建卷组(简称VG)

#vgcreate www /dev/sdb1

ps:创建卷组时如果使用默认的参数,最后在此基础上创建逻辑卷时会有大小限制,默认最大不能超过256G,如果在生产系统中规划逻辑卷大小会超过256G时,那么在创建卷组时就要使用参数-s并指定一个分为大小,如10G,这样创建的卷组就可以容纳2T的逻辑卷了.命令如下

#vgcreate -s 10G /dev/sdb1

创建卷组时要为卷组指定一个名字,如该卷组会用来存储web数据,就可以命名为www,也会在/etc/lvm/backup目录下的对应文件中写入卷组信息。有兴趣的读者可以打开看看,都是文本格式的文件。卷组创建好后可以使用命令vgdisplay命令查看其详细信息。

6.创建逻辑卷(简称LV)

#lvcreate -L5G -nwww www

#lvcreate -L5G -njpg www

这里的-L参数后跟的是该逻辑卷的大小,它们之间没有空格,-n参数后跟的是该逻辑卷的名字,最后是卷组的名字。

创建好后可以使用命令lvdisplay命令查看其详细信息,执行lvcreate命令会向硬盘中写入逻辑卷信息,对应的/etc/lvm/backup下的文件也会得到更新。

7.给逻辑卷上创建文件系统

#mkfs.ext3 -j /dev/www/www

#mkfs.ext3 -j /dev/www/jpg

8.创建挂载点与挂载逻辑卷

#cd /var

#mkdir www jpg

#mount /dev/www/www /var/www

#mount /dev/www/jpg /var/jpg

如果想开机自动挂载,修改/etc/fstab

加入

/dev/www/www /var/www  ext3  defaults 1 2

/dev/www/www /var/jpg  ext3  defaults 1 2

执行 mount 即可以看到挂载信息,若没有说明挂载失败~

9。逻辑卷LV增大减小

 ∴增大

#lvextend -L+2G /dev/www/www

#lvdisplay

这时看到逻辑卷大小已经变大了,但这并不意味着文件系统就随着一起变大了,此时mount上后,用df命令查看还是增大前的大小,这时需要用到另一个工具ext2resize,安装后有2个命令ext2resize和ext2online,ext2resize命令必须要在卸载文件系统的情况下才能使用,ext2online可以实现在线重设文件系统大小.命令如下

#ext2online /dev/oracle/oracle 10G

#df -lh

这时就能看到文件系统变为10G了,与逻辑卷大小一致了。使用ext2online的一个好处是,如果你在该逻辑卷上有正在运行的程序,不能终止服务,但空间快用光了,这时可以透明地增加其大小,不影响服务。

 ∴减小

#umount /oracle

#ext2resize /dev/oracle/oracle 10G

#lvreduce -L-12G /dev/oracle/oracle

#mount /dev/oracle/oracle /oracle

#df -h

注意:减小LV可能会造成数据丢失,所以先要做一次全备份,然后卸载掉文件系统,再进行操作。

10。硬盘替换~没有测试,转别人的。

以往如果硬盘坏掉,意味着数据丢失,于是人们发明了RAID技术,LVM本身不具备数据冗余功能,但它可以建立的RADI技术之上,即先用几块硬盘组成RAID阵列,再在阵列上进行分区,然后在其上建立逻辑卷,如果是这种情况,其中一块硬盘坏掉,如果是RAID5,那么可以直接拔掉坏硬盘,插一块好的即可。在使用LV的情况下,可以不用重启系统将一块硬盘中的数据转移到另一块上,实际上只需要一个命令pvmove就可以了。这里以移动/dev/oracle/oracle上的数据到/dev/src/src为例进行说明。

首先在/oracle上创建1个文件

#echo 1111>/oracle/1.txt

将第二块硬盘加入同一卷组,这里假设将/dev/hdb加入到卷组oracle中

#lvremove src

#vgremove src

这两个命令是将卷组src占用的pv腾出来。

#vgextend  oracle /dev/hdb1

将/dev/hdb1分区加入卷组oracle,这时可以移动分区了

#pvmove /dev/hda1

这样将原来的/dev/hda1是的数据全部转移到新的分区/dev/hdb1上了,现在可以将/dev/hda1从卷组oracle中移除。

#vgreduce oracle /dev/hda1

重新挂载

#mount /dev/oracle/oracle /oracle

查看前面创建的文件1.txt是否还在

#ls /oracle

可以看到文件还在,说明移动成功,这样也就完成了硬盘替换。可以看出替换硬盘没有重启系统,实现了在线替换

11。将硬盘转移到另一台计算机~

在使用普通分区的情况下,将硬盘挂接到其他机器上非常简单,拔下来插上去即可使用,在使用了LVM的情况下,要稍微多一点事情,因为LV的结构是同时保存在硬盘中也保存在/etc/lvm/backup下,在将硬盘移动前,要将这里面的信息删除,这是通过LVM附带的一个命令vgexport实现的,到了另一台机器上后,要创建这个信息,是通过vgimport来实现的,下面以/dev/hda为例进行说明。

首先在机器1上:

#vgchange -a n oracle

这条命令是将卷组oracle设为不可用状态

#vgexport oracle

注意这里不要理解为导出,实际上这个命令是从源系统中注销卷组。

在机器2上:

#vgimport oracle /dev/hda1

在机器2上注册卷组oracle

#vgchange -a y oracle

激活卷组oracle,这样硬盘就从一台机器移动到另一台机器了。

注意:如果在你的发行版中运行vgimport命令没有在/etc/lvm/backup目录下创建LV信息备份文件,需要手动运行vgcfgbackup命令来备份。

©著作权归作者所有:来自51CTO博客作者Deidara的原创作品,如需转载,请注明出处,否则将追究法律责任

职场休闲LVMlinux


0人推荐
随时随地看视频
慕课网APP