分享
 
 
 

一份非常内行的Linux LVM HOWTO

王朝system·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

译者:谢启发

一份非常内行的Linux LVM HOWTO

1. 绪论

欢迎你,亲爱的读者。

写这个文档的目的是为了告诉你什么是LVM,它怎样工作,你怎样运用它使你的生活变得更容易。虽然有一份LVM FAQ,但仍是德文的,它是从不同的角度来描写的。它是一份“真的”HOWTO,在传授理解(有希望的)的时候也是非常内行的。

我要说清楚我不是一个Linux逻辑卷管理器(Logical Volume Manager)的作者。我向那些作者表示敬意,同时我希望能和他们合作。

不可思议的是我甚至不知道LVM的开发者。我希望这种情况不久会改变。我事先向他们表示道歉。

1.1 免责声明 & 许可

分发这个文档是希望它对你有用,但是不提供任何担保,也没有销售或适应特殊目的的隐含担保。

如果你的磁盘融化了,你公司解雇了你--这决不是我们的错。对不起。请记得经常做备份,在没有重要数据的系统上做实验。

此外,Richard Allen不代表他老板说话。

Linux是Linus Torvalds的注册商标。

英文原文(若翻译有误,以原文为准)

This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If your disks melt and your company fires you - its never our fault. Sorry. Make frequent backups and do your experiments on non-mission critical systems.

Furthermore, Richard Allen does not speak for his employer.

Linux is a registered trademark of Linus Torvalds.

1.2 预备知识

不是太多。如果你曾经安装过Linux和创建过文件系统(fdisk/mkfs),那你就准备就绪了。但因为总是以root身份操作,所以一定要小心谨慎!错误的命令或操作设备文件都可能损坏已经存在的数据。

如果你知道怎样配置HP/UX LVM,那你几乎都完成了,Linux工作得很象HP上的处理。

1.3 注意事项

关于这份文档有几点需要注释。虽然我写了大部分,但我真的不希望它停步。我坚决相信Open Source,我鼓励你反馈、更新、打补丁等等。不要不愿意告诉我们有关排版或普通的老错误。

如果你感觉你更有资格来维护一部分,或者你认为你能创作和维护一个新的部分,欢迎你。这个HOWTO的SGML格式是通过CVS可用的。我预想这会是个合作计划。

这份文档里,你会发现许多FIXME的通知。补丁总是欢迎的!无论你在哪里发现FIXME,你都要明白你正踩在未知的领域。这不是说其他地方没有错误,而是说这里是要特别注意的地方。如果你已经验证了什么,请告诉我,我好删除这FIXME通知。

1.4 访问,CVS & 更新

这份HOWTO的规范定位在 这里。

我们现在有匿名的CVS访问,对全世界普遍有效。这使你更容易获得最新版的HOWTO,并提供改变和增强。

如果你想通过CVS获得这份HOWTO,下面教你怎样做:

$ export CVSROOT=:pserver:anon@outpost.ds9a.nl:/var/cvsroot

$ cvs login

CVS password: [enter cvs (without s)]

$ cvs co lvm-howto

cvs server: Updating lvm-howto

U lvm-howto/lvm-howto.sgml

如果你发现错误,或者想增加什么,本地修复它,并运行“cvs diff -u”,同时将结果发给我们。

提供了一个Makefile文件来帮助你创建postscript,dvi,pdf,html 和 plain text格式。你可能需要安装sgml-tools,ghostscript 和 tetex 以获得所有格式。

1.5 这份文档的编排

我们将首先解释一些需要的基本知识。我们尽量设法包括例子来帮助理解。

2. 什么是LVM?

传统上,一个分区大小是静态的。这要求一个系统安装人员必须考虑的不是“我要在这个分区上存储多少数据”,而是“我‘究竟'要在这个分区上存储多少数据”。当一个用户在这个分区上没有空间了,他要么不得不重新分区(这可能要求整个操作系统重装),要么象符号连接一样使用组装机。

一个分区就是物理磁盘上一系列连续数据块的概念已经演变了。多数类Unix系统现在有能力分解物理磁盘到许多单元。多个驱动器上的存储单元可以汇聚成一个“逻辑卷”,它们可以分配给分区。另外,单元可以随着空间要求的改变而从分区中添加和删除。

这就是基本的逻辑卷管理器(LVM)

例如,假设你有一个1GB的磁盘,并且创建“/home”分区花了600MB。设想你没有空间了,于是决定“/home”需要1GB。用传统的分区观念,你不得不有另外一个至少1GB大小的驱动器。接着增加这个磁盘,创建新的/home,并且将现有的数据拷贝过去。

然而,用LVM配置,你仅仅只需要增加400MB(或更大)的磁盘,并将它的存储单元添加到“/home”分区中。其他工具可以让你调整原来文件系统的大小,所以你仅仅只需要调整“/home”大小来使用更大的分区,接着返回到商务中。

一个非常特殊的处理,LVM甚至可以做它自身的“快照”,这使你能对不可移动的目标做备份。我们返回到这个激动人心的可能中,稍后,有许多另外的真实应用。

以下章节中,我们解释了LVM的基本要素,和它使用中的许多概要。

3. 基本原理

Ok,不要因为恐惧而停止,但是LVM有许多你要明白的术语,以免你危及你的文件系统。

我们从下面开始,或多或少。

物理介质 The physical media

你应该感受“物理”这个单词有极大的延伸,虽然我们刚开始假设它仅仅是一个硬盘,或者一个分区。例如,/dev/hda,/dev/hda6,/dev/sda。你可以转换一个块设备上任何连续块到一个。。。

物理卷 Physical Volume (PV)

一个PV只不过是有许多管理数据添加在它里面的物理介质--一旦你添加了它,LVM就认为它是。。。的一个持有者。

物理分区 Physical Extents (PE)

物理分区真的象一些大的数据块,通常有几MB。PE可以分配给一个。。。

卷组 Volume Group (VG)

一个VG是由许多物理分区组成的(可能来自多个物理卷或硬盘)。虽然这可能容易让你认为一个VG就是由几个硬盘组成的(例如/dev/hda和/dev/sda),但是更确切的说,它包含由这些硬盘提供的许多PE。

>从这个卷组,PE可以分配给一个。。。

逻辑卷 Logical Volume (LV)

Yes,我们最终到达某处。一个逻辑卷是我们工作的最终结果,这里是我们存储信息的地方。这等同于传统分区的想法。

象用通常的分区一样,在逻辑卷上你能代表性的创建一个。。。

文件系统 Filesystem

文件系统是你想它成为的形态:标准的 ext2,ReiserFS,NWFS,XFS,JFX,NTFS,等等。。。对Linux内核来说,在通常的分区和逻辑卷之间没有差别。

我试着画了一个ASCII图来使这些形象化。

一个物理卷,包含了许多物理分区:

+-----[ Physical Volume ]------+

| PE | PE | PE | PE | PE | PE |

+------------------------------+

一个卷组,包含了2个物理卷(PV)有6个物理分区:

+------[ Volume Group ]-----------------+

| +--[PV]--------+ +--[PV]---------+ |

| | PE | PE | PE | | PE | PE | PE | |

| +--------------+ +---------------+ |

+---------------------------------------+

我们现在做更进一步扩展:

+------[ Volume Group ]-----------------+

| +--[PV]--------+ +--[PV]---------+ |

| | PE | PE | PE | | PE | PE | PE | |

| +--+---+---+---+ +-+----+----+---+ |

| | | | +-----/ | | |

| | | | | | | |

| +-+---+---+-+ +----+----+--+ |

| | Logical | | Logical | |

| | Volume | | Volume | |

| | | | | |

| | /home | | /var | |

| +-----------+ +------------+ |

+---------------------------------------+

这个向我们展示了两个文件系统,它跨越两个磁盘。/home文件系统包含4个物理分区,/var文件系统包含2个。

bert hubert 正在写一个工具来更真实的描述LVM,这里提供了一些它在屏幕上出现的外观。看起来比ASCII图画要好。

3.1 Show & Tell

Ok,这些概念很难理解('We are LVM of Borg...),因此下面给出了创建一个逻辑卷的例子。不要粘贴这个例子到你的控制台,因为这样会破坏数据,除非碰巧你的计算机的/dev/hda3和/dev/hdb2没有使用。

如果有疑问,查看上面的ASCII图画。

你应该首先设置/dev/hda3和/dev/hdb2的分区类型为0x8e,它表示”Linux LVM”。请注意你的fdisk的版本可能仍不认识这种类型,因此它显示为“Unknown”:

# fdisk /dev/hda

Command (m for help): p

Disk /dev/hda: 255 heads, 63 sectors, 623 cylinders

Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System

/dev/hda1 1 2 16033+ 83 Linux

/dev/hda2 3 600 4803435 83 Linux

/dev/hda3 601 607 56227+ 83 Linux

/dev/hda4 608 614 56227+ 83 Linux

Command (m for help): t

Partition number (1-4): 3

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

Command (m for help): p

Disk /dev/hda: 255 heads, 63 sectors, 623 cylinders

Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System

/dev/hda1 1 2 16033+ 83 Linux

/dev/hda2 3 600 4803435 83 Linux

/dev/hda3 601 607 56227+ 8e Unknown

/dev/hda4 608 614 56227+ 83 Linux

Command (m for help): w

我们对/dev/hdb2做同样的操作,在此就不演示了。这是需要的,以至LVM能重建你应该丢失的配置。

通常,不需要重启,但有些计算机却要求。因此如果下面的例子不工作,试试重启。

接着我们创建物理卷(PV),如下:

# pvcreate /dev/hda3

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

# pvcreate /dev/hdb2

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

我们再将这两个物理卷(PV)加到一个叫做“test”的卷组(VG)中:

# vgcreate test /dev/hdb2 /dev/hda3

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"

vgcreate -- volume group "test" successfully created and activated

现在我们有一个空的卷组(VG),让我们来检查一下:

# vgdisplay -v test

--- Volume group ---

VG Name test

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 184 MB

PE Size 4 MB

Total PE 46

Alloc PE / Size 0 / 0

Free PE / Size 46 / 184 MB

--- No logical volumes defined in test ---

--- Physical volumes ---

PV Name (#) /dev/hda3 (2)

PV Status available / allocatable

Total PE / Free PE 13 / 13

PV Name (#) /dev/hdb2 (1)

PV Status available / allocatable

Total PE / Free PE 33 / 33

这里的许多数据--大多数现在都容易理解了。我们看到没有逻辑卷(LV)定义,因此我们要补上它。我们将在“test”卷组(PV)中创建一个50MB的逻辑卷,叫做“HOWTO”:

# lvcreate -L 50M -n HOWTO test

lvcreate -- rounding up size to physical extent boundary "52 MB"

lvcreate -- doing automatic backup of "test"

lvcreate -- logical volume "/dev/test/HOWTO" successfully created

Ok,到这里,我们创建一个文件系统:

# mke2fs /dev/test/HOWTO

mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

13328 inodes, 53248 blocks

2662 blocks (5.00%) reserved for the super user

First data block=1

7 block groups

8192 blocks per group, 8192 fragments per group

1904 inodes per group

Superblock backups stored on blocks:

8193, 24577, 40961

Writing inode tables: done

Writing superblocks and filesystem accounting information: done

# mount /dev/test/HOWTO /mnt

# ls /mnt

lost+found

我们做完了!让我们回顾我们的卷组(VG),它现在充满了一些东西:

# vgdisplay test -v

--- Volume group ---

VG Name test

VG Access read/write

VG Status available/resizable

VG # 0

MAX LV 256

Cur LV 1

Open LV 1

MAX LV Size 255.99 GB

Max PV 256

Cur PV 2

Act PV 2

VG Size 184 MB

PE Size 4 MB

Total PE 46

Alloc PE / Size 13 / 52 MB

Free PE / Size 33 / 132 MB

--- Logical volume ---

LV Name /dev/test/HOWTO

VG Name test

LV Write Access read/write

LV Status available

LV # 1

# open 1

LV Size 52 MB

Current LE 13

Allocated LE 13

Allocation next free

Read ahead sectors 120

Block device 58:0

--- Physical volumes ---

PV Name (#) /dev/hda3 (2)

PV Status available / allocatable

Total PE / Free PE 13 / 13

PV Name (#) /dev/hdb2 (1)

PV Status available / allocatable

Total PE / Free PE 33 / 20

好,这就是了。/dev/hda3完全没用,而/dev/hdb2有13个物理分区(PE)在用。

3.2 激活和非激活:内核空间和用户空间

和使用所有操作系统一样,Linux划分了两个部分:内核空间(kernel space)和用户空间(user space)。用户空间有时叫做用户区(userland),这也是关于这个主题的一个很好的名字。

关于逻辑卷管理器的创建和修改都是在用户空间做的,然后传给内核。一旦卷组或逻辑卷向内核汇报,它就叫做“激活(Active)”。当它被激活时,只有某些更改可以执行,其他的更改只有在它非激活时执行。

4. 首要条件

LVM在很大范围内的内核中都有效。在Linux 2.4,LVM将全部被集成。内核2.3.47和以前的,LVM要经过处理来合并到主内核中。

4.1 内核

Linux 2.4

包含了你需要的所有内容。希望大多数的发行版都将LVM当成模块集成来发行。如果你需要编译,仅仅是当你选择块设备时打勾LVM选项。

Linux 2.3.99.*

一旦内核向前发展稳定了,这部分就不会存在了。但是现在,我们还是要描述一下。

当我们写这篇文档时,Linux最新的内核版本是2.3.99pre5,它仍然需要一些小的补丁才能使LVM工作。

对于Linux 2.3.99pre3,有两个补丁发行:

一个补丁是张贴在linux-kernel,在这里可以找到。

Andrea Arcangeli改进了这个补丁,提供了一个增量的补丁,它应用于2.3.99pre3 LVM补丁和这之上。

对于Linux 2.3.99pre5,bert hubert将这两个补丁合并成一个了,并且主要针对2.3.99pre5。在这里可以找到这个补丁。使用它要小心。

2.3.99pre6-1,是的,是补丁

[1] [2] [3] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有