庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>系统管理>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

在Linux下使用逻辑卷管理程序

 作者:本站收集   日期:2005-3-13
字号选择〖 〗/ 双击滚屏 单击停止   
对于Linux用户而言,在安装一台Linux机器的时候,遇到的问题之一就是给各分区估计和分派足够的硬盘空间。无论对一个正在为服务器寻找空间的系统管理员,还是一个磁盘即将用尽的普通用户来说,这都是一个非常常见的问题。解决的方法通常是使用符号链接,或者一些调整分区大小的工具(比如parted)。但是,这只是一个暂时性的解决办法,不久,我们又会面临同样的问题。

   如果你是一个站点的系统管理员,管理着数量众多的、连接在Internet之上的服务器,那么你每关机一分钟,都会给公司带来很大损失。此外,使用这种方法,在修改了分区表之后,每一次都得重新启动系统。LVM(逻辑卷管理程序)可以帮助我们解决这些问题。

LVM简介

   Linux LVM可以使管理工作更加轻松。相对于硬盘和分区,LVM是从更高的层次来看待存储空间的。在使用LVM之前,先来看一些将要使用到的相关概念。

物理卷

   物理卷是指硬盘分区或者从逻辑上看起来和硬盘分区类似的设备(比如RAID设备)。

逻辑卷

   一个或者多个物理卷组成一个逻辑卷。对于LVM而言,逻辑卷类似于非LVM系统中的硬盘分区。逻辑卷可以包含一个文件系统(比如/home或者/usr)。

卷组

   一个或者多个逻辑卷组成一个卷组。对于LVM而言,卷组类似于非LVM系统中的物理硬盘。卷组把多个逻辑卷组合在一起,形成一个可管理的单元。


LVM工作方式

   下面来看一看LVM到底是怎样工作的。每一个物理卷都被分成几个基本单元,即所谓的PE(Physical Extents)。PE的大小是可变的,但是必须和其所属卷组的物理卷相同。在每一个物理卷里,每一个PE都有一个惟一的编号。PE是一个物理存储里可以被LVM寻址的最小单元。

   每一个逻辑卷也被分成一些可被寻址的基本单位,即所谓的LE(Logical Extents)。在同一个卷组中,LE的大小和PE是相同的,很显然,LE的大小对于一个卷组中的所有逻辑卷来说都是相同的。

   在一个物理卷中,每一个PE都有一个惟一的编号,但是对于逻辑卷这并不一定是必需的。这是因为当这些PE ID号不能使用时,逻辑卷可以由一些物理卷组成。因此,LE ID号是用于识别LE以及与之相关的特定PE的。正如前面所提到的,LE和PE之间是一一对应的。每一次存储区域被寻址访问或者LE的ID被使用,都会把数据写在物理存储设备之上。

   你可能会觉得奇怪,有关逻辑卷和逻辑卷组的所有元数据都存到哪儿去了。类似的在非LVM系统中,有关分区的数据是存储在分区表中,而分区表被存储在了每一个物理卷的起始位置。VGDA(卷组描述符区域)功能就好象是LVM的分区表,它存储在每一个物理卷的起始处。

   VGDA由以下信息组成:

   ◆ 一个PV描述符
   ◆ 一个VG描述符
   ◆ LV描述符
   ◆ 一些PE描述符

   当系统启动LV时,VG被激活,并且VGDA被加载至内存。VGDA帮助识别LV的实际存储位置。当系统想要访问存储设备时,由VGDA建立起来的映射机制就用于访问实际的物理位置来执行I/O操作。

开始工作

   下面具体看一看如何使用LVM。

   第一步:配置内核。在安装LVM之前,内核之中应该有LVM模块,可以使用以下的步骤来完成:


   #cd /usr/src/linux
   #make menuconfig



   选择Multi-device Support (RAID and LVM)子菜单,选中以下两个选项:


   [*] Multiple devices driver support (RAID and LVM)
   <*> Logical volume manager (LVM) Support.



   第二步:检查驱动器上空闲硬盘空间的总量。这可以通过以下命令来未完成:


   # df -h
   Filesystem Size Used Avail Use% Mounted on
   /dev/hda1 3.1G 2.7G 398M 87% /
   /dev/hda2 4.0G 3.2G 806M 80% /home
   /dev/hda5 2.1G 1.0G 1.1G 48% /var



   第三步:在硬盘上创建一个LVM分区。使用fdisk或者其它的分区工具来创建一个LVM分区。Linux LVM的分区类型为8e。


   # fdisk /dev/hda
   press p (to print the partition table) and n (to create a new partition)



   第四步:创建一个物理卷。下述命令将在分区的起始处创建一个卷组描述符:


   # pvcreate /dev/hda6
   pvcreate -- -physical volume "/dev/hda6" successfully created
   # pvcreate /dev/hda7
   pvcreate- -- physical volume "/dev/hda7" successfully created



   第五步:创建一个卷组。通过下面的方法创建一个新的卷组,并且添加两个物理卷:


   # vgcreate test_lvm /dev/hda6 /dev/hda7
   vgcreate- -- INFO: using default physical extent size 4 MB
   vgcreate- -- INFO: maximum logical volume size is 255.99 Gigabyte
   vgcreate- -- doing automatic backup of volume group "test_lvm"
   vgcreate- -- volume group "test_lvm" successfully created and activated



   上述命令将创建一个名为test_lvm,包含有/dev/hda6和/dev/hda7两个物理卷的卷组。使用下面命令来激活卷组:


   # vgchange -ay test_lvm



   使用“vgdisplay”命令来查看所建立卷组的细节信息。


   # vgdisplay
   --- Volume group ---
   VG Name test_lvm
   VG Access read/write
   VG Status available/resizable
   VG # 0
   MAX LV 256
   Cur LV 1
   Open LV 0
   MAX LV Size 255.99 GB
   Max PV 256
   Cur PV 2
   Act PV 2
   VG Size 3.91 GB
   PE Size 4 MB
   Total PE 1000
   Alloc PE / Size 256 / 1 GB
   Free PE / Size 744 / 2.91 GB
   VG UUID T34zIt-HDPs-uo6r-cBDT-UjEq-EEPB-GF435E



   第六步:创建一个逻辑卷。使用lvcreate命令在卷组中创建一个逻辑卷:


   # lvcreate -L2G -nlogvol1 test_lvm



   第七步:创建文件系统。在该逻辑卷上选择使用reiserfs日志文件系统:


   # mkreiserfs /dev/test_lvm/logvol1



   使用mount命令来加载新创建的文件系统。


   # mount -t reiserfs /dev/test_lvm/logvol1 /mnt/lv1



   第八步:在/etc/fstab和/etc/lilo.conf中添加一个入口。在/etc/fstab中加入以下入口,在启动时加载文件系统:


   /dev/test_lvm/logvol1 /mnt/lv1 reiserfs defaults 1 1



   如果没有覆盖原来的内核,那么拷贝一份重新编译后的内核,并且在启动时选择是否使用LVM。下面是LILO文件的内容:


   image = /boot/lvm_kernel_image
   label = linux-lvm
   root = /dev/hda1
   initrd = /boot/init_image
   ramdisk = 8192



   添加以上内容后,使用以下命令重新加载LILO:


   #/sbin/lilo



   第九步:修改逻辑卷的大小。可以使用lvextend命令方便地修改逻辑卷的大小,增加逻辑卷大小的方法如下:


   # lvextend -L+1G /dev/test_lvm/logvol1
   lvextend -- extending logical volume "/dev/test_lvm/logvol1" to 3GB
   lvextend -- doing automatic backup of volume group "test_lvm"
   lvextend -- logical volume "/dev/test_lvm/logvol1" successfully extended



   类似的,减小逻辑卷大小的方法如下:


   # lvreduce -L-1G /dev/test_lvm/lv1
   lvreduce -- -Warning: reducing active logical volume to 2GB
   lvreduce- -- This may destroy your data (filesystem etc.)
   lvreduce -- -do you really want to reduce "/dev/test_lvm/lv1"? [y/n]: y
   lvreduce- -- doing automatic backup of volume group "test_lvm"
   lvreduce- -- logical volume "/dev/test_lvm/lv1" successfully reduced

总结

   从上面的讨论可以看到,LVM具有很好的可扩展性,并且使用起来很直观。一旦卷组建立起来以后,根据需求调整每一个逻辑卷的大小也非常容易。
上一篇:优化Linux系统硬盘    下一篇:多服务器的日志合并统计——apache日志的cronolog轮循和webalizer合并统计  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-3-13
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿