由于安装的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. php大力力 [026节] php开发状态要随时做好整理工作

    php大力力 [026节]  php开发状态要随时做好整理工作: 1.整理了开发目录,以及文件命名: 2.做了各个页面的快捷方式: 3.把浏览器safari的很多没来得及消化的页面链接,写入了我的在线 ...

  2. python3爬虫初探(五)之从爬取到保存

    想一想,还是写个完整的代码,总结一下前面学的吧. import requests import re # 获取网页源码 url = 'http://www.ivsky.com/tupian/xiaoh ...

  3. div居中问题

    首们需要position:absolute搜索;绝对定位. 而层的定位点,使用外补丁margin负值的方法. 负值的大小为层自身宽度高度除以二. div {      position:absolut ...

  4. IOS 使用block完成网络请求的自定义类BlockURLConnection

    一,头文件 #import <Foundation/Foundation.h>//定义下载中block类型typedef void(^ProcessBlock) (NSURLRespons ...

  5. codeforces round367 div2.C (DP)

    题目链接:http://codeforces.com/contest/706/problem/C #include<bits/stdc++.h> using namespace std; ...

  6. Redis - set类型操作

    set类型操作 设置操作:sadd:        sadd key value        给指定的key添加元素,重复返回0表示添加失败. srem:         srem key valu ...

  7. lower_bound和upper_bound算法

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

  8. C# string格式的日期时间字符串转为DateTime类型

    (1 )Convert.ToDateTime(string) string格式有要求,必须是yyyy-MM-dd hh:mm:ss (2):Convert.ToDateTime(string, IFo ...

  9. [!!!!!]Inno Setup教程-常见问题解答

    [转]Inno Setup教程-常见问题解答 功能 * 翻译 Inno Setup 文字  * 它支持 MBCS (多字节字符集) 吗?  * 将来会支持 Windows Installer 吗?   ...

  10. 进程process和线程thread的关系

    写的很好很明白cpu每次只能执行一个进程,所以其他进程会挂起 在一个进程中,允许存在n个线程,n个线程共享这个进程中的资源 多个线程在共享的时候存在资源互斥,一次只能一个线程,会需要加锁 一次存在固定 ...