对于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

本文来自CSDN博客,转载请标明出处:http://www.cppblog.com/mydriverc/archive/2009/10/14/98631.html

本文转自 deng304749970 51CTO博客,原文链接:http://blog.51cto.com/damondeng/849937,如需转载请自行联系原作者

Linux LVM 收藏相关推荐

  1. Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载)

    Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载) Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量, ...

  2. Linux LVM 的使用详解

    Linux LVM 的使用详解 2011-12-20 14:41 摘要: Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间.而 ...

  3. linux lvm使用情况,Linux LVM系列(一)lvm使用

    简介 逻辑卷管理LVM是一个多才多艺的硬盘系统工具.无论在Linux或者其他类似的系统,都是非常的好用.传统分区使用固定大小分区,重新调整大小十分麻烦.但是,LVM可以创建和管理"逻辑&qu ...

  4. linux删除配置信息,Linux LVM逻辑卷配置过程详解(创建、扩展、缩减、删除、卸载、快照创建)...

    一.预备知识 LVM全称为Logical Volume Manager逻辑卷管理器,LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘分 ...

  5. 通用线程: 学习 Linux LVM

    为什么80%的码农都做不了架构师?>>>    通用线程: 学习 Linux LVM "逻辑卷管理"为存储器管理带来的魔力 Daniel Robbins ( dr ...

  6. suse linux 命令 收藏

    suse linux 命令 收藏 1.修改vftpd配置文件   vi /etc/vsftpd .conf                       #listen=YES   vi /etc/xi ...

  7. [zz]一份非常内行的Linux LVM HOWTO

    作 者: 谢启发 1. 绪论 欢迎你,亲爱的读者. 写这个文档的目的是为了告诉你什么是LVM,它怎样工作,你怎样运用它使你的生活变得更容易.虽然有一份LVM FAQ,但仍是德文的,它是从不同的角度来描 ...

  8. linux查看lvm命令,linux lvm常用命令总结

    linux LVM 1 创建 .删除思路创建:Linux分区---物理卷---卷组---逻辑卷删除:逻辑卷---卷组----物理卷---Linux分区 2 linux分区 linux中我们通常使用fd ...

  9. linux lvm添加磁盘,Linux下添加磁盘创建lvm分区

    shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle a bootab ...

最新文章

  1. RedHat 7.0及CentOS 7.0禁止Ping的三种方法
  2. 浏览Github必备的5款神器级别的Chrome插件
  3. 您必须在sources.list中指定代码源_python如何从源代码构建lxml
  4. gps卫星位置计算程序matlab_卫星空间大地测量中GPS周跳探测的四种方法
  5. 学习java应该如何理解反射?
  6. 11.8 iotop:动态显示磁盘I/O统计信息
  7. 开放下载!《深入浅出玩转物联网平台》
  8. System类,Math类
  9. 万字长文:近年来学界、业界视角下的“事理图谱”发展总结与思考
  10. 在Linux上安装JDK9
  11. 基于HTML5的Web SCADA工控移动应用
  12. 附录-系统环境、系统属性
  13. mysql的4字节字符支持_让MySql支持Emoji表情(MySQL中4字节utf8字符保存方法)
  14. 直播项目之仿全民TV(已开源)
  15. 数字人民币的基础:共识与信任
  16. 分享优秀品牌平面广告创意作品的创意密码
  17. 个人记录—— The bean ‘xxx.FeignClientSpecification‘ could not be registered ...
  18. 泛克里金方法的实际应用——小试牛刀
  19. 【观察】并购魔方安全,联软科技再启新征程
  20. 【Hack The Box】linux练习-- Jarvis

热门文章

  1. 清华大学计算机系教授:马少平——计算机是如何实现智能的(附直播回放)...
  2. 3D器官和骨骼将使移植清单成为历史
  3. 中国10大最震撼的无人工厂,你吃的用的都是这么来的!
  4. 信息技术守护人类文明DNA
  5. 腾讯AI Lab解析2017 NIPS三大研究方向,启动教授及学生合作项目
  6. 物联网时代传感器厂商竞争格局揭秘
  7. 学术界盛事揭幕:一图解读跨越百余年的诺贝尔奖
  8. 逃课上网吧编程、玩摇滚的另类学生,如何成为独角兽公司的 CTO?
  9. 怎么做到的?美术生居然转型做程序员?
  10. 中招!330 万台老年机被植木马,背后黑幕细思极恐