由于安装的kvm需要扩容,研究了下lvm的使用。

LVM(Logical Volume Manager)逻辑卷管理器,做法是将物理分区通过软件组合未一个独立的大磁盘(VG,卷组),然后把这个大磁盘分成新的分区(LV,逻辑卷)挂载使用。
物理分区加上8e的sysem id之后,通过pvcreate转成物理卷(pv),调整System ID用fdisk命令。
PE(物理延伸块)是LVM的最小存储区块,lvm默认使用4M的PE区块,VG(卷组)最多仅能有65534个PE,因此VG最多会有4M*65534=256G的大小。
如何做到弹性比昂更LV呢?把原本lv内的pe转移到vg内其他地方减少lv容量,把vg内别的pe加入此lv中可以增大容量。
使用lvm,需要先安装lvm2(apt-get install lvm2),涉及的命令:
fdisk,partprobe,pvcreate,pvscan,pvdisplay,pvremove,vgdisplay,vgcreate,lvcreate,lvdisplay,mkfs,mount.
lvm有两种写入模式:线性模式(linear,默认),交错模式(triped)。交错模式读写性能较好,但只要任何一个分区损坏,整个文件系统就坏了。

关于主分区(primary)、扩展分区(extended)和逻辑分区(logical):
每块硬盘上的MBR只支持最多四个分区,如果要更多分区,就需要有个扩展分区,在扩展分区中添加逻辑分区。所以如果存在扩展分区,最多只能有三个主分区,主分区和扩展分区信息存放在MBR中,逻辑分区的信息存放在扩展分区内。
逻辑卷的位置如下:/dev/vbirdvg/vbirdlv,vbirdvg是vg名,vbirdlv是lv名称,实际上是链接到/dev/mapper.
增加lv容量最后需调用resize2fs,可以在线执行,即不用umount。
而减少容量和调整swap大小则不能在线处理:
减少容量需先调用resize2fs,umount,e2fsck,再mount,lvresize,pvmove。
swap分区改动先swapoff -a,完成后mkswap,swapon -a。

使用livecd或者desktop版本trying ubuntu时,需安装lvm2,用fdisk分区,boot分1G,另一个分区则放/,swap卷和home卷,并加入system id(8e)。然后:
sudo pvcreate /dev/sda2
sudo vgcreate sysvg /dev/sda2
sudo lvcreate -L 1G -n lvswap sysvg
sudo lvcreate -L 20G -n lvroot sysvg
sudo lvcreate -L 100%FREE -n lvhome sysvg
sudo mkfs.ext4 /dev/mapper/sysvg-lvroot
sudo mkfs.ext4 /dev/mapper/sysvg-lvhome
sudo mkswap -f /dev/mapper/sysvg-lvswap

然后在以上几个盘和mount point中安装ubuntu。
而由于安装之后的系统默认不带lvm2会使系统无法启动,这时需要在live system中mount几个点到/mnt下面,然后chroot到/mnt,然后执行apt-get install lvm2(参考文献1中建议先在/etc/modules中增加一些模块),mount之前可能需要执行:

vgchange -a y sysvg

ubuntu  12.04.3 server版无法在安装前配置lvm,应用desktop(相当于livecd)引导,但在kvm中安装desktop时图像显示有问题无法使用terminal(alternate安装之后也有这个问题,启动时不加-no-acpi即可),于是使用带lvm功能的alternate版本,该配置中没有/home对应逻辑卷,boot分区配254MB。

PS:我在kvm中测试了添加10G硬盘,增加3G swap,7G ROOT,果然可以。需要注意的是删除旧的分区添加新的分区时起始的扇区需要使用默认值而不是旧的值,否则会REBOOT不起来。

参考:

1.http://ubuntuforums.org/showthread.php?t=1782296

2.鸟哥的私房菜第三版

3.kvm增加磁盘容量:http://serverfault.com/questions/324281/how-do-you-increase-a-kvm-guests-disk-space

lvm使用总结-转的更多相关文章

  1. Linux LVM逻辑卷配置过程详解

    许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以 ...

  2. linux下 lvm 磁盘扩容

    打算给系统装一个oracle,发现磁盘空间不足.在安装系统的时候我选择的是自动分区,系统就会自动以LVM的方式分区.为了保证系统后期的可用性,建议所有新系统安装都采用LVM,之后生产上的设备我也打算这 ...

  3. LVM基本介绍与常用命令

    一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...

  4. Linux归档压缩、分区管理与LVM管理

    归档和压缩命令: 命令格式: gzip [-9] 文件名 bzip2 [-9] 文件名 gzip –d .gz格式的压缩文件 bzip2 –d .bz2格式的压缩文件 选项: -9:高压缩比,多用于压 ...

  5. 2.lvm动态逻辑卷

    Lvm动态逻辑卷 一.             基本概念 LVM 把实际的物理磁盘数据映射到一个简单而灵活的虚拟逻辑存储视图上,藉以控制磁盘资源: 也就是重新考虑了管理文件系统和卷的方法,在文件系统管 ...

  6. Linux LVM学习总结——扩展卷组VG

    Linux服务器由于应用变更或需求的缘故,有可能出现分区空间不足的情况,此时往往需要进行扩容(要增加分区的空间),而采用LVM的好处就是可以在不需停机的情况下可以方便地调整各个分区大小.如下所示,分区 ...

  7. LVM 管理减少swap分区空间增加到根分区

    简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现 ...

  8. archlinux安裝手记(Win10+Arch、GPT+UEFI、lvm)

    准备工具和设置制作启动盘连接网络硬盘分区规划分区LVM方案创建文件系统分区挂载激活lvm2钩子基础安装和配置配置镜像源基础系统安装fstab进入系统initramfs引导程序网络搭建使用环境用户管理用 ...

  9. parted LVM划分4T磁盘,在线扩展1.5T

      磁盘分区: parted /dev/emcpowera (parted) print Model: Unknown (unknown) Disk /dev/emcpowera: 4398GB Se ...

  10. Linux LVM逻辑卷

    概述 LVM的产生是因为传统的分区一旦分区好后就无法在线扩充空间,也存在一些工具能实现在线扩充空间但是还是会面临数据损坏的风险:传统的分区当分区空间不足时,一般的解决办法是再创建一个更大的分区将原分区 ...

随机推荐

  1. PAT 08-2 求矩阵的局部最大值

    这题挺简单的,但,每日一篇.说两点:第一,我的粗心导致我这题花了大把的时间去找错误,看到4个测试用例对了三个,我以为是那块的边界条件没考虑到,又或者是存在隐蔽的逻辑或语法错误,通过与别人程序的反复对比 ...

  2. 多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量

    多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量,并且数组变量可以直接取到每一个元素var array1 = '<%=yearList =>'; ...

  3. Makefile学习笔记

    ls -l 查看文件详细信息 1.gcc -E test.c -o test.i//预编译gedit test.i //查看:高级C 2.gcc -Wall -S test.i -o test.s// ...

  4. 【LeetCode OJ】Sum Root to Leaf Numbers

    # Definition for a binary tree node # class TreeNode: # def __init__(self, x): # self.val = x # self ...

  5. lower_bound和upper_bound算法

    参考:http://www.cnblogs.com/cobbliu/archive/2012/05/21/2512249.html ForwardIter lower_bound(ForwardIte ...

  6. 【转】终于干了点正事。。三天用了三个库opencv、emgu、aforge.net[2011.7.30]

    原文转自: http://blog.csdn.net/tutuguaiguai0427/article/details/6646051 这阵子,确切说这几天,还是看了好多东西的.虽然无用功居多. 上篇 ...

  7. 常用http请求状态码含义

    1**  ----临时响应 2**  ----成功响应 3**  ----重定向 4**  ----请求错误 5**  ----服务器错误 常用的几个如下: 200---服务器成功返回网页 301-- ...

  8. 从数学角度看最大期望(EM)算法 I

    [转载请注明出处]http://www.cnblogs.com/mashiqi 2014/11/18 更新.发现以前的公式(2)里有错误,现已改过来.由于这几天和Can讨论了EM算法,回头看我以前写的 ...

  9. JavaScript数据结构——链表

    链表:存储有序的元素集合,但不同于数组,链表中的元素在内存中不是连续放置的.每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成. 好处:可以添加或移除任意项,它会按需扩容 ...

  10. (实用篇)PHP JSON数组与对象的理解

    在PHP后端和客户端数据交互的过程中,JSON数据中有时格式不定,一会儿是数组,一会儿是对象,弄得客户端开发人员要崩溃的感觉. 因此,前后端相关人员先对PHP的json_encode函数原理有必要的了 ...