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

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

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

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

一.创建LINUX LVM

1、定义物理卷

[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

[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

[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

[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

[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

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、挂载分区

[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

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

2、通过vgcreatend命令扩展VG

[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

[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中的数据移到物理卷上

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

3、从卷组中将缩减vg

[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

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

四、扩展逻辑卷

1、扩展物理边界

[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、扩展逻辑边界

[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

[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、缩减逻辑边界

[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、缩减物理边界

[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:定义快照

[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

    转自:http://www.cnblogs.com/net2012/p/3365904.html 逻辑卷管理器,通过将另外一个硬盘上的分区加到已有文件系统,来动态地向已有文件系统添加空间的方法. 逻辑 ...

  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. LeetCode(38) Count and Say

    题目 The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 111 ...

  2. Windows 下安装 Node.js

    搭建博客系列的 Node.js 环境安装.Windows 下面安装可以通过图形化界面进行安装,非常方面. 1.打开 Node.js 官网,下载对应版本的安装包(msi 后缀的) 2.双击运行下载的程序 ...

  3. .DS_Store的说明

    今天清理电脑时,突然发现好像有文件的地方都会出现一个.DS_Store文件,今天有时间,索性就查了一下,并做总结发表一篇吧,怕有什么影响,并未真正实施,仅仅供自己收藏,仅供大家参考.      DS_ ...

  4. noip模拟赛 少女

    分析:每个连通块都是独立的,对一个连通块进行分析.如果边数>点数,显然是不可能的,因为每条边要分配给一个点,至少有一个点分配了两次以上.如果边数=点数,就形成了环,有两种方案,顺时针一个环,逆时 ...

  5. hdu 2642二维树状数组 单点更新区间查询 模板题

    二维树状数组 单点更新区间查询 模板 从零开始借鉴http://www.2cto.com/kf/201307/227488.html #include<stdio.h> #include& ...

  6. [ C语言 ] 迷宫 迷宫生成器 [ 递归与搜索 ]

    [原创]转载请注明出处 [浙江大学 程序设计专题] [地图求解器] 本题目要求输入一个迷宫地图,输出从起点到终点的路线. 基本思路是从起点(Sx,Sy)每次枚举该格子上下左右四个方向,直到走到终点(T ...

  7. 守卫者的挑战(codevs 1997)

    题目描述 Description 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻着关押applepi的监狱的所在地.突然,眼前一道亮光闪过.“我,Nizem,是黑魔法圣殿的守卫者.如 ...

  8. Linux下汇编语言学习笔记56 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  9. Java并发包——使用新的方式创建线程

    Java并发包——使用新的方式创建线程 摘要:本文主要学习了如何使用Java并发包中的类创建线程. 部分内容来自以下博客: https://www.cnblogs.com/dolphin0520/p/ ...

  10. Spring Cloud体系实现标签路由

    如果你正在使用Spring Cloud体系,在实际使用过程中正遇到以下问题,可以阅读本文章的内容作为后续你解决这些问题的参考,文章内容不保证无错,请务必仔细思考之后再进行实践. 问题: 1,本地连上开 ...