转自:http://www.cnblogs.com/net2012/p/3365904.html

逻辑卷管理器,通过将另外一个硬盘上的分区加到已有文件系统,来动态地向已有文件系统添加空间的方法。

逻辑卷管理的核心是处理安装在系统上的硬盘分区。在逻辑卷管理的世界里,硬盘称作物理卷(Physical Volume,PV).每个物理卷都会映射到硬盘上创建的某一个物理分区。

多个物理卷元素集中在一起可以组成一个卷组(Volume Group,VG)。逻辑卷管理系统会把卷组当做物理硬盘一样对待,但事实上卷组可能是由分布多个物理硬盘上的多个物理分区组成的。卷组提供了一个创建逻辑分区的平台,而这些逻辑分区事实上包含了文件系统。

整个结构中的最后一层是逻辑卷(Logic Volume,LV)。逻辑卷为Linux提供了创建文件系统的分区环境,作用类似于到目前为止我们一直在探讨的Linux中的物理硬盘。Linux系统将逻辑卷当做物理分区对待。可以使用任意一种标准Linux文件系统来格式化逻辑卷,然后再将它在某个挂载点添加进入Linux虚拟目录中。

一.创建LINUX LVM

1、定义物理卷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
[root@TP-CW-TS-DB-01 ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): t
Partition number (1-6): 8e
Value out of range.
Partition number (1-6): quit
Partition number (1-6): ^C
[root@TP-CW-TS-DB-01 ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): t
Partition number (1-6): 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-6): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-6): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-6): 4
Hex code (type L to list codes): 8e
You cannot change a partition into an extended one or vice versa
Delete it first.
Command (m for help): t
Partition number (1-6): 5
Hex code (type L to list codes): 8e
Changed system type of partition 5 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-6): 6
Hex code (type L to list codes): 8e
Changed system type of partition 6 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@TP-CW-TS-DB-01 ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): p
Disk /dev/sdb: 300.0 GB, 300000000000 bytes
255 heads, 63 sectors/track, 36472 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc82dffc2
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          30      240943+  8e  Linux LVM
/dev/sdb2              31        2642    20980890   8e  Linux LVM
/dev/sdb3            2643        3948    10490445   8e  Linux LVM
/dev/sdb4            3949        6560    20980890    5  Extended
/dev/sdb5            3949        5254    10490413+  8e  Linux LVM
/dev/sdb6            5255        6560    10490413+  8e  Linux LVM

用来sdb的6个分区转换成Linux LVM分区,8e分区类型表示这个分区将会被用做Linux LVM系统的一部分,而不是一个直接的文件系统,

2、创建PV

1
2
3
4
5
6
7
8
9
10
[root@TP-CW-TS-DB-01 ~]# pvcreate /dev/sdb5
  Physical volume "/dev/sdb5" successfully created
[root@TP-CW-TS-DB-01 ~]# pvcreate /dev/sdb6
  Physical volume "/dev/sdb6" successfully created
[root@TP-CW-TS-DB-01 ~]# pvs
  /dev/drbd0: open failed: Wrong medium type
  PV         VG       Fmt  Attr PSize  PFree
  /dev/sda2  VolGroup lvm2 a-   67.88g     0
  /dev/sdb5           lvm2 a-   10.00g 10.00g
  /dev/sdb6           lvm2 a-   10.00g 10.00g

3.创建VGS

1
2
3
4
5
6
7
8
9
10
[root@TP-CW-TS-DB-01 ~]# vgcreate onlinevg /dev/sdb5
  Volume group "onlinevg" successfully created
[root@TP-CW-TS-DB-01 ~]# vgcreate onlinevg /dev/sdb6
  A volume group called onlinevg already exists.
[root@TP-CW-TS-DB-01 ~]# vgcreate onlinevg /dev/sdb{5,6}
  Volume group "onlinevg" successfully created
[root@TP-CW-TS-DB-01 ~]# vgs
  VG       #PV #LV #SN Attr   VSize  VFree
  VolGroup   1   3   0 wz--n- 67.88g     0
  onlinevg   2   0   0 wz--n- 20.00g 20.00g

4、创建LV

1
2
3
4
5
6
7
8
[root@TP-CW-TS-DB-01 ~]# lvcreate -L 5G -n mylv onlinevg
  Logical volume "mylv" created
[root@TP-CW-TS-DB-01 ~]# lvs
  LV      VG       Attr   LSize  Origin Snap%  Move Log Copy%  Convert
  lv_home VolGroup -wi-ao 17.81g                                
  lv_root VolGroup -wi-ao 32.36g                                
  lv_swap VolGroup -wi-ao 17.70g                                
  mylv    onlinevg -wi-a-  5.00g

逻辑卷的设备文件:/dev/VG_NAME/LV_NAME

1
2
3
4
[root@TP-CW-TS-DB-01 ~]# ls /dev/onlinevg/mylv
/dev/onlinevg/mylv
[root@TP-CW-TS-DB-01 ~]# ls -l /dev/onlinevg/mylv
lrwxrwxrwx. 1 root root 7 Oct 12 16:21 /dev/onlinevg/mylv -> ../dm-3

5、格式化LV

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mke2fs -t ext4 /dev/onlinevg/mylv
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done                       
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

6、挂载分区

1
2
3
4
5
6
7
8
9
10
11
[root@TP-CW-TS-DB-01 ~]# mount /dev/onlinevg/mylv /mnt/
[root@TP-CW-TS-DB-01 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       32G  3.7G   27G  13% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             485M   49M  411M  11% /boot
/dev/mapper/VolGroup-lv_home
                       18G  172M   17G   2% /home
/dev/mapper/onlinevg-mylv
                      5.0G  138M  4.6G   3% /mnt

二、扩展VG

1、首先在创建一个PV

1
2
[root@TP-CW-TS-DB-01 mnt]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created

2、通过vgcreatend命令扩展VG

1
2
3
4
5
6
7
8
9
10
11
12
[root@TP-CW-TS-DB-01 mnt]# vgs
  VG       #PV #LV #SN Attr   VSize  VFree
  VolGroup   1   3   0 wz--n- 67.88g     0
  onlinevg   2   1   0 wz--n- 20.00g 15.00g
[root@TP-CW-TS-DB-01 mnt]# vgextend onlinevg /dev/sdb
sdb   sdb1  sdb2  sdb3  sdb4  sdb5  sdb6
[root@TP-CW-TS-DB-01 mnt]# vgextend onlinevg /dev/sdb3
  Volume group "onlinevg" successfully extended
[root@TP-CW-TS-DB-01 mnt]# vgs
  VG       #PV #LV #SN Attr   VSize  VFree
  VolGroup   1   3   0 wz--n- 67.88g     0
  onlinevg   3   1   0 wz--n- 30.00g 25.00g

通过命令查看onlinevg扩展到了30G

1
2
3
4
5
6
[root@TP-CW-TS-DB-01 mnt]# pvs
  PV         VG       Fmt  Attr PSize  PFree
  /dev/sda2  VolGroup lvm2 a-   67.88g     0
  /dev/sdb3  onlinevg lvm2 a-   10.00g 10.00g
  /dev/sdb5  onlinevg lvm2 a-   10.00g  5.00g
  /dev/sdb6  onlinevg lvm2 a-   10.00g 10.00g

三、缩减VG

1、确定要移除的PV(/dev/sdb5)

2、利用pvmove将/dev/sdb5中的数据移到物理卷上

1
2
pvmove /dev/sdb5
/dev/sdb5:Mover:100.0%

3、从卷组中将缩减vg

1
2
3
4
5
6
[root@TP-CW-TS-DB-01 ~]# vgreduce onlinevg /dev/sdb5
  Removed "/dev/sdb5" from volume group "onlinevg"
[root@TP-CW-TS-DB-01 ~]# vgs
  VG       #PV #LV #SN Attr   VSize  VFree
  VolGroup   1   3   0 wz--n- 67.88g     0
  onlinevg   2   1   0 wz--n- 20.00g 15.00g

4、删除/dev/sdb5

1
2
[root@TP-CW-TS-DB-01 ~]# pvremove /dev/sdb5
  Labels on physical volume "/dev/sdb5" successfully wiped

四、扩展逻辑卷

1、扩展物理边界

1
2
3
[root@TP-CW-TS-DB-01 ~]# lvextend -L +3G /dev/onlinevg/mylv
  Extending logical volume mylv to 8.00 GiB
  Logical volume mylv successfully resized

注意:这个是候文件系统挂载的/mnt大小不会有任何变化

2、扩展逻辑边界

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@TP-CW-TS-DB-01 ~]# resize2fs /dev/onlinevg/mylv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/onlinevg/mylv is mounted on /mnt; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/onlinevg/mylv to 2097152 (4k) blocks.
The filesystem on /dev/onlinevg/mylv is now 2097152 blocks long.
[root@TP-CW-TS-DB-01 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       32G  3.7G   27G  13% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             485M   49M  411M  11% /boot
/dev/mapper/VolGroup-lv_home
                       18G  172M   17G   2% /home
/dev/mapper/onlinevg-mylv
                      7.9G  140M  7.4G   2% /mnt

五、缩减逻辑卷

1、卸载并强行检测文件系统:

umount /mnt

1
2
3
4
5
6
7
8
[root@TP-CW-TS-DB-01 ~]# e2fsck -f /dev/onlinevg/mylv
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/onlinevg/mylv: 12/524288 files (0.0% non-contiguous), 68564/2097152 blocks

2、缩减逻辑边界

1
2
3
4
[root@TP-CW-TS-DB-01 ~]# resize2fs /dev/onlinevg/mylv 3G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/onlinevg/mylv to 786432 (4k) blocks.
The filesystem on /dev/onlinevg/mylv is now 786432 blocks long.

3、缩减物理边界

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@TP-CW-TS-DB-01 ~]# lvreduce -L 3G /dev/onlinevg/mylv
  WARNING: Reducing active logical volume to 3.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y
  Reducing logical volume mylv to 3.00 GiB
  Logical volume mylv successfully resized
[root@TP-CW-TS-DB-01 ~]# mount /dev/onlinevg/mylv /mnt
[root@TP-CW-TS-DB-01 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       32G  3.7G   27G  13% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             485M   49M  411M  11% /boot
/dev/mapper/VolGroup-lv_home
                       18G  172M   17G   2% /home
/dev/mapper/onlinevg-mylv
                      3.0G  136M  2.7G   5% /mnt

六、创建快照卷

lvcreate

-s:快照卷:

-p r:只读

-n:定义快照

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@TP-CW-TS-DB-01 dev]# lvcreate -L 100M -s -p r -n mylv-snap /dev/onlinevg/mylv
 [root@TP-CW-TS-DB-01 dev]# mount -o ro /dev/onlinevg/mylv-snap /media
[root@TP-CW-TS-DB-01 dev]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       32G  3.7G   27G  13% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             485M   49M  411M  11% /boot
/dev/mapper/VolGroup-lv_home
                       18G  172M   17G   2% /home
/dev/mapper/onlinevg-mylv
                      3.0G  136M  2.7G   5% /mnt
/dev/mapper/onlinevg-mylv--snap
                      3.0G  136M  2.7G   5% /media

【转】Linux中的LVM的更多相关文章

  1. Linux中的LVM和软RAID

        在实际工作中,会经常碰到所给的服务器硬盘容量太小,而实际的应用软件中却需要一个容量较大的分区进行数据存储等,除了通过硬件RAID卡来实现合并多硬盘外,其实我们也可以通过软件的方式来实现. 实验 ...

  2. Linux中的LVM

    逻辑卷管理器,通过将另外一个硬盘上的分区加到已有文件系统,来动态地向已有文件系统添加空间的方法. 逻辑卷管理的核心是处理安装在系统上的硬盘分区.在逻辑卷管理的世界里,硬盘称作物理卷(Physical ...

  3. Linux中利用LVM实现分区动态扩容

    使用命令: pvscan vgdisplay lvdisplay vgremove vgextend lvresize -l resize2fs 从物理磁盘,创建lvm逻辑分区 pvcreate vg ...

  4. Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式

    Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cut ...

  5. ethtool 在 Linux 中的实现框架和应用

    转载:http://www.ibm.com/developerworks/cn/linux/1304_wangjy_ethtools/index.html?ca=dat- 王 俊元, 软件工程师, I ...

  6. Linux中的磁盘

    Linux的磁盘管理 (很重要请注意高能预警) 硬盘:几个盘片,双面,磁性颗粒, 处理速率不同步:借助于一个中间层 文件系统(FileSystem)     可以实现对磁盘行的文件进行读写     文 ...

  7. Linux中逻辑卷的快照与还原

    有关逻辑卷的其他操作,请看: Linux中对逻辑卷的建立 Linux中对逻辑卷进行扩容与缩小 Linux中对逻辑卷的移除 LVM还有快照的功能,类似windows的系统还原点.其特点: 1.快照卷的容 ...

  8. Linux中LVM2原理

    一.LVM原理 [MD]:Multi Device 多设备 Mdadm是一个用户空间工具,是RAID的管理工具,与真正的RAID工作没有太大关系.真正的RAID集成在linux内核中 [DM]Devi ...

  9. 在 iSCSI Target 服务器中使用LVM创建和设置LUN(二)

    LUN是逻辑单元号,它与iSCSI存储服务器共享.iSCSI 目标器通过TCP/IP网络共享它的物理驱动器给发起程序(initiator).这些来自一个大型存储(SAN:Storage Area Ne ...

随机推荐

  1. airfoil polar data during post stall stages (high AOA)

    airfoil polar data during post stall stages (high AOA) Table of Contents 1. airfoil polar during pos ...

  2. vue子组件向父组件传递参数的基本方式

    子组件: this.$emit('transferUrl', this.picUrl) 父组件: 引入子组件<pics @transferUrl="gettransferUrl&quo ...

  3. 洛谷 2922 BZOJ 1590 [USACO08DEC]秘密消息Secret Message

    [题意概述] 给出n个01串组成的字典和m个询问,每次询问某个01串和多少个字典中的串有相同的前缀.(前缀长度是两串中较小的部分) [题解] 直接上Trie树即可.树上每个节点记录两个信息:这个节点有 ...

  4. hdu 1754 I Hate It(线段树水题)

    >>点击进入原题测试<< 思路:线段树水题,可以手敲 #include<string> #include<iostream> #include<a ...

  5. Sky数

    Problem Description Sky从小喜欢奇特的东西,而且天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,这个数,它的十进制数表示,其四位数字之和为2+9+9+2=2 ...

  6. SQLalchemy 查询总结

    #简单查询 print(session.query(User).all()) print(session.query(User.name, User.fullname).all()) print(se ...

  7. Android推断屏幕锁屏的方法总结

    转载请注明:http://blog.csdn.net/heroxuetao/article/details/24639203 因为做一个项目,须要推断屏幕是否锁屏,发现网上方法非常多.可是比較杂.如今 ...

  8. 具体解释kernel中watchdog 驱动程序

    watchdog不管在小系统还是大的project系统中都是必须存在的.在解决线程挂死.系统死循环等都用非常重要的应用,算是系统出问题恢复初始状态的救命稻草. 在kernel中wdt的应用不是非经常见 ...

  9. BestCoder Round #61 (div.2) B.Game 细节题

    Game   问题描述 XY在玩一个游戏:有N根柱子排成一排,编号为1到N,每个柱子上面有一块宝石,现在XY站在第S根柱子上,出口在第T跟柱子上,XY需要拿到所有宝石后从出口离开.每次XY可以走到相邻 ...

  10. TLabel和TEdit的初次显示过程

    procedure TForm1.Button2Click(Sender: TObject); var l: TLabel;begin l:=TLabel.Create(self); l.Name:= ...