Linux和Windows都采用了MBR的磁盘管理方法,也就是先对一个硬盘进行分区,在对这个一般光盘进行格式化的方法;他们的区别是: Linux系统,是先进行磁盘分区,如果需要使用该分区,将其挂载到对应目录即可;而Windows则是自动将所有分区挂载好 传统的磁盘管理的缺点:不方便进行分区扩充、容易导致文件系统崩溃、不适用于作为生产环境的服务器、拷贝分区的时候要求强制卸载磁盘分区,分区转移时耗费的时间长;
LVM磁盘管理技术 是Linux环境下对磁盘管理的一种技术,是通过一个建立在硬盘和分区之上的逻辑层来提高磁盘分区的灵活性
物理卷(PV):就是真正的物理硬盘或物理分区
卷组(VG):是将多个物理硬盘整合到一起形成的逻辑卷组;也可以视作一块逻辑硬盘
逻辑卷(LV):卷组是一块逻辑硬盘,逻辑硬盘必须分区之后才能使用;逻辑卷可以视作是卷组的逻辑分区
物理扩展(PE):物理扩展是用来保存数据的最小单元
系统首先把物理硬盘合并为卷组;再通过卷组分区;将卷组(逻辑硬盘)分成逻辑分区(逻辑卷)进行使用;
把物理硬盘分成分区,也可以使用一整块的物理硬盘;把物理硬盘分区建立为物理卷(PV)也可以把整块物理硬盘都建立为物理卷;把刚刚划分的物理卷合为卷组(VG)卷组就已经可以动态的调整大小了,最后把卷组划分成逻辑卷,其中逻辑卷也是可以随时划分大小的
pvcreate命令在系统中一般用于创建物理卷;
语法结构
在使用这个命令的时候不要对存放Linux系统的盘符进行进行使用;我们在创建物理卷的时候都是对逻辑分区进行创建的;扩展分区(Extend)不能进行创建物理卷
pvdisplay 命令用于查看当前的分区情况
语法格式以及常用参数:
查看我们刚刚创建的物理卷
pvremove命令常用于删除对应的物理卷
语法结构:
删除我们刚刚创建的物理卷
vgcreate 命令的作用是将一个或多个物理卷整合成一个卷组;在创建卷组之前我们需要保证系统中有足够的除系统存放卷本身的物理卷(使用pvscan查看)需要注意的是,存放Linux的系统物理卷不能被划分到自定义卷组中、 常用参数:-s:设定PE(最小物理存储单元)的大小、-l:最大逻辑卷数量、-p:允许存在的最大物理卷数量
语法结构:
将我们刚刚创建物理卷添加到卷组之中
vgdisplay 这个命令可以用来查看我们创建的卷组; 常见的参数 -s 卷组信息以短格式输出 ;vgdisplay可以查看对应卷组的简短信息,所以相对于pvdisplay用处又大了那么一点
语法格式:
查看刚刚创建的卷组和某一个卷组的信息
同样:vgscan 命令也可以查看当前卷组使用情况的简短信息
vgremove 命令的作用是删除指定的卷组
语法结构:
删除我们刚刚创建的卷组
注意:当删除含有逻辑卷的卷组的时候系统会提示是否删除对应卷组和对应逻辑卷,只有在两个都输入:y之后系统才会删除对应的卷组
lvcreate 命令作用是在一个指定的卷组中创建一块逻辑卷,前提是要求有指定的卷组; 常用参数:-L:规定创建的逻辑卷大小(直接写大小就可以)、-l:通过PE划分逻辑卷的大小(后面接的数字是PE的个数)
语法结构:
在指定的卷组里创建逻辑卷
lvdisplay 命令可用于查看逻辑卷的详细信息,也可以用来查看指定逻辑卷的详细信息 参数:-m:查看对应逻辑卷的挂载信息
语法结构:
检查指定的逻辑卷,并查看指定逻辑卷的挂载信息:
管理逻辑卷大小的常用命令是lvextend 命令和 lvreduce 命令分别表示逻辑卷大小的扩充和减少, 其中lvextend命令表示逻辑卷大小扩充,常用参数 -L(指的是扩充的具体大小)、-l(指的是扩充的LE块数量);lvextend命令表示逻辑卷大小的减小,常用参数-L(指的是减小的具体大小)、-l(指的是减小的LE块数量)
语法结构:
对我们指定的两个逻辑卷分别进行容量的增加和减少,并挂载对应的逻辑卷
对于Linux用户而言,在安装一台Linux机器的时候,遇到的问题之一就是给各分区估计和分派足够的硬盘空间。无论对一个正在为服务器寻找空间的系统管理员,还是一个磁盘即将用尽的普通用户来说,这都是一个非常常见的问题。解决的方法通常是使用符号链接,或者一些调整分区大小的工具(比如parted)。但是,这只是一个暂时性的解决办法,不久,我们又会面临同样的问题。如果你是一个站点的系统管理员,管理着数量众多的、连接在Internet之上的服务器,那么你每关机一分钟,都会给公司带来很大损失。此外,使用这种方法,在修改了分区表之后,每一次都得重新启动系统。LVM(逻辑卷管理程序)可以帮助我们解决这些问题。
LVM简介
Linux LVM可以使管理工作更加轻松。相对于硬盘和分区,LVM是从更高的层次来看待存储空间的。在使用LVM之前,先来看一些将要使用到的相关概念。
物理卷
物理卷是指硬盘分区或者从逻辑上看起来和硬盘分区类似的设备(比如RAID设备)。
逻辑卷
一个或者多个物理卷组成一个逻辑卷。对于LVM而言,逻辑卷类似于非LVM系统中的硬盘分区。逻辑卷可以包含一个文件系统(比如/home或者/usr)。
卷组
一个或者多个逻辑卷组成一个卷组。对于LVM而言,卷组类似于非LVM系统中的物理硬盘。卷组把多个逻辑卷组合在一起,形成一个可管理的单元。
document.body.clientWidth-450) {this.height=(document.body.clientWidth-450)*this.height/this.widththis.width=document.body.clientWidth-450}" border="0">
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.
复制代码
注:如果在安装Linux系统时已经安装了LVM相关软件包,上面几步 *** 作可以省略掉,直接到第二步.
第二步:检查驱动器上空闲硬盘空间的总量。这可以通过以下命令来未完成:
# 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具有很好的可扩展性,并且使用起来很直观。一旦卷组建立起来以后,根据需求调整每一个逻辑卷的大小也非常容易。
LVM *** 作的相关命令:
fdisk -l :查看系统中都认到了那些物理硬盘
pvdisplay:查看系统中已经创建好的物理卷
pvcreate:创建一个新的物理卷
pvremove:删除一个物理卷(也就是从物理卷中删除一个LVM标签)
vgdisplay:查看系统中的卷组
vgcreate:创建一个新的卷组
vgreduce:从卷组中删除一个物理卷(也就是缩小卷组)
vgremove:删除一个卷组
lvdisplay:查看系统中已经创建好的逻辑卷
lvcreate:创建一个新的逻辑卷
lvreduce:缩小逻辑卷(也就是从一个逻辑卷中减少一些LE)
lvremove:从系统中删除一个逻辑卷
mkfs:基于逻辑卷创建一个相应类型的文件系统
mkdir -p $mount_piont:创建一个挂载目录
创建好的文件系统位于:
/dev/$create_vg_name/$lv_name
mount /dev/$create_vg_name/$lv_name $mount_piont:挂载文件系统
vgscan:读取系统中创建的所有卷组
vgchange -a y :激活所有卷组 (开机执行,redhat可在/etc/rc.d/rc.sysinit系统启动初始化脚本里可以找到)
vgchange -a n :关闭所有卷组(提示:必须在umount所有的文件系统后,才能成功执行
裸设备使用:
1.先lvreate
2. raw /dev/raw/raw0 /dev/mapper/vgname-lvname
3.修改 /etc/sysconfig/rawdevices,添加:
/dev/raw/raw0 /dev/mapper/vgname-lvname
4.执行命令service rawdevices restart,使得/etc/sysconfig/rawdevices文件中的裸设备配置生效
5.执行/sbin/schkconfig rawdevices on 使得系统重启后,裸设备能自动加载
6.修改裸设备的属主,使得相应权限的用户对裸设备有读写权限
chown -R owner:group /dev/raw/raw0
7.将修改裸设备属主修改命令加入到系统启动执行脚本/etc/rc.local中,使得系统启动后裸设备的属主保持不变.
来自顶级大咖的解答:
逻辑卷管理(Logic Volume Manager),简称LVM,是动态磁盘分区管理技术,目前已经很少使用了,如果是学习,大可不必浪费时间掌握了。
1.PV(Physical Volume),物理卷,即物理磁盘分区。
2.VG(Volume Group),卷组,是所有物理卷PV组成的集合。
3.LV(Logic Volume),逻辑卷,是从卷组VG中划分出来的存放数据的磁盘空间。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)