免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 994 | 回复: 2
打印 上一主题 下一主题

LVM实现事例 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-24 15:17 |只看该作者 |倒序浏览
声明:本人是一名普通的Linux fans,对一切基于Linux的技术都倍感兴趣,只要有利于你我,有利于国家,有利于民族。特此
将来自于http://www.siliconvalleyccie.com/linux-adv/lvm.htm的内容翻译为中文。同时,本人对在实际中使用该技术造成的
一切不良后果均不负责。最后,本人翻译水平有限,加上时间有限(一天),不妥之处望大家见谅。希望本文能抛砖引玉。

(某些部分,为使语句通顺,有部分删减和填充,请与原文对照。)

正文

Logical Volume Manager (LVM)是一项允许用户来对硬盘的分区大小进行重新分配,而不需要同时对相应硬盘的分区

表进行调整的一项安全且的实用技术,该项技术是基于Linux平台的。这样,如果你遇到分区大小不能满足需求时,

你就可以通过使用该工具来调整分区的大小,而不是一股脑儿的将文件系统重新都转移到新的磁盘上,或者来重新安装

系统,重新分配空间。


LVM术语


Physical Volume--物理卷

物理卷(PV)是在LVM中使用的与物理磁盘分区非常相似的一个概念。


Logical Volume--逻辑卷

任意磁盘上的任意物理卷(PVs)可以聚集成为一个逻辑卷(LV)。在LVM中,逻辑卷类似于“虚拟磁盘”。


Volume Groups--卷组

逻辑卷可以再细分为卷组。每个卷组会象磁盘分区一样被格式化,因此卷组就象在虚拟磁盘上的虚拟分区。

这儿看上去这项技术好象有点复杂,但如果在实际当中无法更改磁盘分区的大小时,你可以通过调整卷组

的大小来改变创建新的虚拟分区的大小。LVM的另一个优点就是你可以在线操作磁盘,而不会影响硬盘上的

其他任何非LVM分区。


Physical Extent--物理扩展区

在将实际当中的磁盘分区加入LV时,这些分区将被分为被称作物理扩展区(PES)的数据块。因为你

不总是以GB来分配VG的大小,这样就可以用几个PEs来定义VGs的大小,由此可见PEs的重要性。



配置LVM


范例背景描述

在该范例中,/home文件系统被mount在/dev/hde5上,但已经没有更多的空间来存储数据。我们需要添加一块

新的硬盘/dev/hdf且将其一半的空间分配给/dev/hde5来扩展/home的大小。/dev/hdf只有一个分区/dev/hdf1。



前期准备

系统环境

2.4-series kernel 已内建支持LVM,同时应查看系统是否安装了LVM的管理包“rpm -qa | grep lvm" (本人添加)


数据备份

因为在建立LVM的过程中会破坏所有PVs上的数据,所以应使用tar命令或其他方式来备份/home中的数据。



unmount /home

为确保/home中数据为当前最新,需确认所有的用户已经下线。


>;        然后切换系统至单用户模式

[root@bigboy root]# init 1


>;        umount /home

[root@bigboy root]# umount /home



确认已有分区的类型

你需要确认每一个LVM分区的类型为8e(Linux LVM)。可以用“fdisk -l”来查看各分区的类型。以下范例使用/dev/hde来显示

但/home所在分区为非LVM分区。


[root@bigboy root]# fdisk -l /dev/hde


Disk /dev/hde: 4311 MB, 4311982080 bytes

16 heads, 63 sectors/track, 8355 cylinders

Units = cylinders of 1008 * 512 = 516096 bytes



   Device Boot    Start       End    Blocks   Id  System

/dev/hde1             1      4088   2060320+  fd  Linux raid autodetect

/dev/hde2          4089      5713    819000   83  Linux

/dev/hde3          5714      6607    450576   83  Linux

/dev/hde4          6608      8355    880992    5  Extended

/dev/hde5          6608      7500    450040+  83  Linux   <---

/dev/hdf1          7501      8355    430888+  83  Linux

[root@bigboy root]#



启动FDISK

>;        你可以使用fdisk来更改分区的类型。以下是范例。


[root@bigboy root]# fdisk /dev/hde



The number of cylinders for this disk is set to 8355.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

   (e.g., DOS FDISK, OS/2 FDISK)



Command (m for help):


>;        将分区的ID改为8e



Command (m for help): t

Partition number (1-6): 5

Hex code (type L to list codes): 8e

Changed system type of partition 5 to 8e (Linux LVM)



Command (m for help): t

Partition number (1-6): 6

Hex code (type L to list codes): 8e

Changed system type of partition 6 to 8e (Linux LVM)



Command (m for help):


>;        确认更改已生效


Command (m for help): p



Disk /dev/hde: 4311 MB, 4311982080 bytes

16 heads, 63 sectors/track, 8355 cylinders

Units = cylinders of 1008 * 512 = 516096 bytes



   Device Boot    Start       End    Blocks   Id  System

/dev/hde1             1      4088   2060320+  fd  Linux raid autodetect

/dev/hde2          4089      5713    819000   83  Linux

/dev/hde3          5714      6607    450576   83  Linux

/dev/hde4          6608      8355    880992    5  Extended

/dev/hde5          6608      7500    450040+  8e  Linux LVM

/dev/hdf1          7501      8355    430888+  8e  Linux LVM



Command (m for help):



>;        保存更改的信息



Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.



WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table.

The new table will be used at the next reboot.

Syncing disks.

[root@bigboy updates]#




运行vgscan


在下面的步骤中,系统将扫描系统中的任何新的LVM分区,并在/etc目录中自动创建LVM的配置文件。以下是范例。


[root@bigboy root]# vgscan

vgscan -- reading all physical volumes (this may take a while...)

vgscan -- "/etc/lvmtab" and "/etc/lvmtab.d" successfully created

vgscan -- WARNING: This program does not do a VGDA backup of your volume group



[root@bigboy root]#


定义逻辑卷

用pvcreate初始化目标分区。这将抹掉分区上的所有数据以备下一步骤。请在运行该命令前备份相应分区上的

所有的数据。


[root@bigboy root]# pvcreate /dev/hde5

pvcreate -- physical volume "/dev/hde5" successfully created



[root@bigboy root]# pvcreate /dev/hdf1

pvcreate -- physical volume "/dev/hdf1" successfully created



[root@bigboy root]#



为PVS创建一个VG

o        vgcreate命令用于将两个PV绑定为一个VG。LVM会使操作系统将该VG当做一个新的硬盘。


o        在我们的范例中,我们将该VG命名为“lvm-hde”


[root@bigboy root]# vgcreate lvm-hde /dev/hdf1 /dev/hde5

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 "lvm-hde"

vgcreate -- volume group "lvm-hde" successfully created and activated



[root@bigboy root]#



从VG中创建一个LV


下面的步骤将VG分为LVs。其中使用的命令为lvcreate。就象硬盘由数据块构成,LVs由PEs构成。

在创建LV前你必须要知道可用的PEs的数量。此时,要用vgdisplay命令。



[root@bigboy root]# vgdisplay lvm-hde

--- Volume group ---

VG Name               lvm-hde

VG Access             read/write

VG Status             available/resizable

VG #                  0

MAX LV                256

Cur LV                0

Open LV               0

MAX LV Size           255.99 GB

Max PV                256

Cur PV                2

Act PV                2

VG Size               848 MB

PE Size               4 MB

Total PE              212

Alloc PE / Size       0 / 0

Free  PE / Size       212 / 848 MB

VG UUID               W7bgLB-lAFW-wtKi-wZET-jDJF-8VYD-snUaSZ





[root@bigboy root]#




命令显示由212个PEs是可以使用的。我们将使用全部的212个PEs在“lvm-hde”VG中创建一个名为“lvm0”

的LV。


[root@bigboy root]# lvcreate -l 212 lvm-hde -n lvm0

lvcreate -- doing automatic backup of "lvm-hde"

lvcreate -- logical volume "/dev/lvm-hde/lvm0" successfully created



[root@bigboy root]#



格式化VG


一旦创建VG,我们就可以将相应的LV格式化。


[root@bigboy root]# mkfs -j  /dev/lvm-hde/lvm0

mke2fs 1.32 (09-Nov-2002)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

108640 inodes, 217088 blocks

10854 blocks (5.00%) reserved for the super user

First data block=0

7 block groups

32768 blocks per group, 32768 fragments per group

15520 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840



Writing inode tables: done

Creating journal (4096 blocks): done

Writing superblocks and filesystem accounting information: done



This filesystem will be automatically checked every 38 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@bigboy root]#




Mount VG


下面的步骤就简单了


标示VG

>;        用e2label命令将该VG标示为/lvm0。

[root@bigboy root]# e2label /dev/lvm-hde/lvm0 /lvm0



创建mount点。

>;        创建一个mount目录/mnt/lvm。


[root@bigboy root]# mkdir /mnt/lvm



更新/etc/fstab

>;        我们将更新/etc/fstab文件。加入以下内容。


LABEL=/lvm0   /mnt/lvm           ext3    defaults        1 2



mount卷

>;        “mount -a”命令将读取/etc/fstab文件并mount所有的没有被mount的设备。在mount完后,我们可以

列出目录的内容来测试我们的操作结果。


[root@bigboy root]# mount -a

[root@bigboy root]# ls /mnt/lvm

lost+found

[root@bigboy root]#


创建一个到/home的符号链接


你需要创建一个到/home的指向/mnt/lvm的符号链接。


[root@bigboy root]# ln -s  /mnt/lvm  /home



恢复数据

现在将备份的数据恢复到/home


退出单用户模式。

用“init 3”或“init 5”返回原始状态。


(全文完)

论坛徽章:
0
2 [报告]
发表于 2004-06-24 15:44 |只看该作者

LVM实现事例

如果系统做在LVM上面,如果系统崩溃了,或者其中一个参与LVM的物理硬盘坏掉了,怎么办?

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
3 [报告]
发表于 2004-06-24 15:50 |只看该作者

LVM实现事例

听说可以recover。但如果盘坏了,可能就不行了。所以才会有人做RAID呀!

所以,我个人的意思,如果没有特别的需要,还是别做LVM吧。因recover还是要下点功夫才能学会,做好的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP