版本1.0
作者:Falko Timme
最后更新:2015-02-09
本指南介绍如何在Linux上使用LVM(逻辑卷管理)。 它还描述了如何在一个额外的章节中将RAID与RAID1一起使用。 由于LVM是一个相当抽象的主题,本文附带了可以下载并启动的Debian Etch VMware映像,在该Debian Etch系统中,您可以运行我在此处执行的所有命令,并将我们的结果与我们进行比较。 通过这种实用的方法,您应该很快用于LVM。
但是,我不保证本教程将为您工作!
1初步说明
本教程的灵感来自于我阅读的两篇文章:
- http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html
- http://www.debian-administration.org/articles/410
这些都是伟大的文章,但如果您以前从未使用过LVM,很难理解。 这就是为什么我创建了可以在VMware Server或VMware Player中下载并运行的Debian Etch VMware映像 (请参阅https://www.youcl.com/info/7256了解如何执行此操作)。
我在Debian Etch系统的本指南过程中安装了我们需要的所有工具(通过运行)
apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs
),所以你不需要担心。
Debian Etch系统的网络通过DHCP配置,所以您不必担心IP地址冲突。 root密码是youcl
。 您还可以使用像PuTTY这样的SSH客户端连接到该系统。 要查找Debian Etch系统的IP地址,请运行
ifconfig
该系统有六个SCSI硬盘, / dev / sda
- / dev / sdf
。 / dev / sda
用于Debian蚀刻系统本身,而我们将使用/ dev / sdb
- / dev / sdf
作为LVM和RAID。 / dev / sdb
- / dev / sdf
每个都有80GB的磁盘空间。 在开始的时候,我们会像每个磁盘空间只有25GB(因此每个磁盘空间只能使用25GB),而在本教程中,我们将用“80GB”的硬盘“替换”我们的25GB硬盘,从而展现了如何您可以在LVM中更换较小的硬盘。
文章http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html使用250GB和800GB的硬盘,但是某些命令(如pvmove)
很长一段时间,这样的硬盘大小,这就是为什么我决定使用25GB和80GB的硬盘(这足以理解LVM如何工作)。
1.1总结
下载此Debian Etch VMware映像 (〜310MB),并启动它。 以root用户身份登录密码youcl
。
2 LVM布局
基本上LVM看起来像这样:
您有一个或多个物理卷(在我们的示例中为/ dev / sdb1
- / dev / sde1
),并且在这些物理卷上,您创建一个或多个卷组(例如, fileserver
),并且在每个卷组中,您可以创建一个或多个逻辑卷。 如果使用多个物理卷,则每个逻辑卷可能大于底层物理卷之一(但当然逻辑卷的总和不能超过物理卷提供的总空间)。
将逻辑卷的全部空间分配到一个很好的做法,但是会留下一些空间。 这样,您可以稍后放大一个或多个逻辑卷,如果您需要它。
在这个例子中,我们将创建一个名为fileserver
的卷组,我们还将创建逻辑卷/ dev / fileserver / share
, / dev / fileserver / backup
和/ dev / fileserver / media
(这将只占用一半的空间由我们现在的物理卷提供 - 这样我们可以在稍后(也在本教程中介绍)中切换到RAID1。
3我们的第一个LVM设置
我们来看看我们的硬盘:
fdisk -l
输出如下所示:
server1:~# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 18 144553+ 83 Linux
/dev/sda2 19 2450 19535040 83 Linux
/dev/sda4 2451 2610 1285200 82 Linux swap / Solaris
Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdc doesn't contain a valid partition table
Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdd doesn't contain a valid partition table
Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sde doesn't contain a valid partition table
Disk /dev/sdf: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdf doesn't contain a valid partition table
/ dev / sdb
- / dev /
sdf上没有分区。 我们将创建分区/ dev / sdb1
, / dev / sdc1
, / dev / sdd1
和/ dev / sde1
,现在让/ dev /
sdf保持原样。 我们现在的行为就好像我们的硬盘现在只有25GB的空间而不是80GB,因此我们将/ dev / sdb1
, / dev / sdc1
, / dev / sdd1
和/ dev / sde1
分配给25GB。
fdisk /dev/sdb
server1:〜#fdisk / dev / sdb
此磁盘的柱面数设置为10443。
没有什么问题,但是这大于1024,
并且在某些设置中可能会导致以下问题:
1)在引导时运行的软件(例如,LILO的旧版本)
2)从其他操作系统启动和分区软件
(例如DOS FDISK,OS / 2 FDISK)
命令(m为帮助):
< - m
命令行动
一个可启动标志的切换
b编辑bsd disklabel
c切换dos兼容性标志
d删除一个分区
l列出已知的分区类型
m打印此菜单
n添加一个新的分区
o创建一个新的空DOS分区表
p打印分区表
q退出而不保存更改
s创建一个新的空的Sun磁盘标签
t更改分区的系统ID
u更改显示/输入单位
v验证分区表
w将表写入磁盘并退出
x额外功能(仅限专家)
命令(m帮助):
< - n
命令行动
e扩展
p主分区(1-4)
< - p
分区号(1-4):
< - 1
第一个圆筒(1-10443,默认为1):
< - <ENTER>
使用默认值1
最后一个圆柱体或+大小或+ sizeM或+ sizeK(1-10443,默认为10443):
< - + 25000M
命令(m为帮助):
< - t
所选分区1
十六进制代码(L型列表代码):
< - L
0空1e隐藏W95 FAT1 80旧Minix是Solaris启动
1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39计划9 82 Linux交换/ So c1 DRDOS / sec(FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS / sec(FAT-
4 FAT16 <32M 40 Venix 80286 84 OS / 2隐藏C:c6 DRDOS /秒(FAT-
5扩展41 PPC PReP引导85 Linux扩展c7 Syrinx
6 FAT16 42 SFS 86 NTFS卷集da非FS数据
7 HPFS / NTFS 4d QNX4.x 87 NTFS卷集db CP / M / CTOS /。
8 AIX 4e QNX4.x第2部分88 Linux纯文本戴尔实用程序
9 AIX可启动4f QNX4.x第3部分8e Linux LVM df BootIt
OS / 2 Boot Manag 50 OnTrack DM 93变形虫e1 DOS访问
b W95 FAT32 51 OnTrack DM6 Aux 94变形虫BBT e3 DOS R / O
c W95 FAT32(LBA)52 CP / M 9f BSD / OS e4 SpeedStor
e W95 FAT16(LBA)53 OnTrack DM6 Aux a0 IBM Thinkpad Hi eb BeOS fs
f W95 Ext'd(LBA)54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI(FAT-12/16 /
11隐藏FAT12 56金弓a7 NeXTSTEP f0 Linux / PA-RISC b
12 Compaq diagnostics 5c Priam Edisk a8达尔文UFS f1 SpeedStor
14隐藏FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16隐藏FAT16 63 GNU HURD或Sys ab达尔文启动f2 DOS二级
17 Hidden HPFS / NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI交换fe LANstep
1b隐藏W95 FAT3 70 DiskSecure多bb启动向导隐藏ff BBT
1c隐藏W95 FAT3 75 PC / IX
十六进制代码(类型L列出代码):
< - 8e
更改系统类型的分区1到8e(Linux LVM)
命令(m为帮助):
< - w
分区表已被更改!
调用ioctl()重新读取分区表。
同步磁盘
现在我们对硬盘/ dev / sdc
- / dev / sde
做同样的事情:
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde
然后跑
fdisk -l
再次。 输出应如下所示:
server1:~# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 18 144553+ 83 Linux
/dev/sda2 19 2450 19535040 83 Linux
/dev/sda4 2451 2610 1285200 82 Linux swap / Solaris
Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 3040 24418768+ 8e Linux LVM
Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 3040 24418768+ 8e Linux LVM
Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 1 3040 24418768+ 8e Linux LVM
Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sde1 1 3040 24418768+ 8e Linux LVM
Disk /dev/sdf: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdf doesn't contain a valid partition table
现在我们为LVM准备新的分区:
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdd1" successfully created
Physical volume "/dev/sde1" successfully created
为了训练目的,让我们回顾一下这个最后一个动作:
pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Labels on physical volume "/dev/sdb1" successfully wiped
Labels on physical volume "/dev/sdc1" successfully wiped
Labels on physical volume "/dev/sdd1" successfully wiped
Labels on physical volume "/dev/sde1" successfully wiped
然后跑
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
再次:
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdd1" successfully created
Physical volume "/dev/sde1" successfully created
现在跑
pvdisplay
了解您的体积的当前状态:
server1:~# pvdisplay
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 23.29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID G8lu2L-Hij1-NVde-sOKc-OoVI-fadg-Jd1vyU
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 23.29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 40GJyh-IbsI-pzhn-TDRq-PQ3l-3ut0-AVSE4B
--- NEW Physical volume ---
PV Name /dev/sdd1
VG Name
PV Size 23.29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 4mU63D-4s26-uL00-r0pO-Q0hP-mvQR-2YJN5B
--- NEW Physical volume ---
PV Name /dev/sde1
VG Name
PV Size 23.29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 3upcZc-4eS2-h4r4-iBKK-gZJv-AYt3-EKdRK6