【转】Linux中的LVM
转自: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/sdbWARNING: 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): tPartition number (1-6): 8eValue out of range.Partition number (1-6): quitPartition number (1-6): ^C[root@TP-CW-TS-DB-01 ~]# fdisk /dev/sdbWARNING: 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): tPartition number (1-6): 1Hex code (type L to list codes): 8eChanged system type of partition 1 to 8e (Linux LVM)Command (m for help): tPartition number (1-6): 2Hex code (type L to list codes): 8eChanged system type of partition 2 to 8e (Linux LVM)Command (m for help): tPartition number (1-6): 3Hex code (type L to list codes): 8eChanged system type of partition 3 to 8e (Linux LVM)Command (m for help): tPartition number (1-6): 4Hex code (type L to list codes): 8eYou cannot change a partition into an extended one or vice versaDelete it first.Command (m for help): tPartition number (1-6): 5Hex code (type L to list codes): 8eChanged system type of partition 5 to 8e (Linux LVM)Command (m for help): tPartition number (1-6): 6Hex code (type L to list codes): 8eChanged system type of partition 6 to 8e (Linux LVM)Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.[root@TP-CW-TS-DB-01 ~]# fdisk /dev/sdbWARNING: 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): pDisk /dev/sdb: 300.0 GB, 300000000000 bytes255 heads, 63 sectors/track, 36472 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk 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/mylvlrwxrwxrwx. 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/mylvmke2fs 1.41.12 (17-May-2010)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks327680 inodes, 1310720 blocks65536 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=134217728040 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736Writing inode tables: done Creating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 32 mounts or180 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 -hFilesystem 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/sdbsdb 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/mylvresize2fs 1.41.12 (17-May-2010)Filesystem at /dev/onlinevg/mylv is mounted on /mnt; on-line resizing requiredold desc_blocks = 1, new_desc_blocks = 1Performing 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 -hFilesystem 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/mylve2fsck 1.41.12 (17-May-2010)Pass 1: Checking inodes, blocks, and sizesPass 2: Checking directory structurePass 3: Checking directory connectivityPass 4: Checking reference countsPass 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 3Gresize2fs 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 -hFilesystem 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 -hFilesystem 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的更多相关文章
- Linux中的LVM和软RAID
在实际工作中,会经常碰到所给的服务器硬盘容量太小,而实际的应用软件中却需要一个容量较大的分区进行数据存储等,除了通过硬件RAID卡来实现合并多硬盘外,其实我们也可以通过软件的方式来实现. 实验 ...
- Linux中的LVM
逻辑卷管理器,通过将另外一个硬盘上的分区加到已有文件系统,来动态地向已有文件系统添加空间的方法. 逻辑卷管理的核心是处理安装在系统上的硬盘分区.在逻辑卷管理的世界里,硬盘称作物理卷(Physical ...
- Linux中利用LVM实现分区动态扩容
使用命令: pvscan vgdisplay lvdisplay vgremove vgextend lvresize -l resize2fs 从物理磁盘,创建lvm逻辑分区 pvcreate vg ...
- 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 ...
- ethtool 在 Linux 中的实现框架和应用
转载:http://www.ibm.com/developerworks/cn/linux/1304_wangjy_ethtools/index.html?ca=dat- 王 俊元, 软件工程师, I ...
- Linux中的磁盘
Linux的磁盘管理 (很重要请注意高能预警) 硬盘:几个盘片,双面,磁性颗粒, 处理速率不同步:借助于一个中间层 文件系统(FileSystem) 可以实现对磁盘行的文件进行读写 文 ...
- Linux中逻辑卷的快照与还原
有关逻辑卷的其他操作,请看: Linux中对逻辑卷的建立 Linux中对逻辑卷进行扩容与缩小 Linux中对逻辑卷的移除 LVM还有快照的功能,类似windows的系统还原点.其特点: 1.快照卷的容 ...
- Linux中LVM2原理
一.LVM原理 [MD]:Multi Device 多设备 Mdadm是一个用户空间工具,是RAID的管理工具,与真正的RAID工作没有太大关系.真正的RAID集成在linux内核中 [DM]Devi ...
- 在 iSCSI Target 服务器中使用LVM创建和设置LUN(二)
LUN是逻辑单元号,它与iSCSI存储服务器共享.iSCSI 目标器通过TCP/IP网络共享它的物理驱动器给发起程序(initiator).这些来自一个大型存储(SAN:Storage Area Ne ...
随机推荐
- codeforces round #394 (div. 2) A\B 题解
开始啦~ 始まった T1 #include <stdio.h> int l,r,even,odd; void Jud(){ for(int i=1;i<=200;i++){ for( ...
- 【Codeforces 264B】Good Sequences
[链接] 我是链接,点我呀:) [题意] 让你在一个递增数组中选择一个最长子序列使得gcd(a[i],a[i+1])>1 [题解] 设f[i]表示以一个"含有素因子i的数字" ...
- 团队开发git使用各种问题
参考:https://www.cnblogs.com/schaepher/p/4933873.html 问题-3:保持github上项目干净,对于在不同机器上运行会不同的文件不予维护(如.idea/w ...
- JavaSE 学习笔记之IO流(二十二)
IO流:用于处理设备上数据. 流:可以理解数据的流动,就是一个数据流.IO流最终要以对象来体现,对象都存在IO包中. 流也进行分类: 1:输入流(读)和输出流(写). 2:因为处理的数据不同,分为字节 ...
- JavaSE 学习笔记之集合框架(十八)
集合框架:,用于存储数据的容器. 特点: 1:对象封装数据,对象多了也需要存储.集合用于存储对象. 2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合.因为集合是可变长度的. 集合和数组的区 ...
- spoj 375 树链剖分模板
/* 只是一道树链刨分的入门题,作为模板用. */ #include<stdio.h> #include<string.h> #include<iostream> ...
- [K/3Cloud]在插件中根据条件取消表单打开过程
新建一个类,继承自动态表单抽象插件类AbstractBillPlugIn,重写PreOpenForm. /// <summary> /// 销售订单 单据维护界面插件 /// </s ...
- 学一学书里的django是怎么写views.py的
他山之石,可以攻玉嘛. 好的习惯有时也是学别人来养成的. 外国人的编码习惯,学啊. from django.core.urlresolvers import reverse_lazy from dja ...
- 大数据分析:结合 Hadoop或 Elastic MapReduce使用 Hunk
作者 Jonathan Allen ,译者 张晓鹏 Hunk是Splunk公司一款比較新的产品,用来对Hadoop和其他NoSQL数据存储进行探測和可视化,它的新版本号将会支持亚马逊的Elastic ...
- XCode 7 高速切换代码窗体和文档窗体
XCode 7 高速切换代码窗体和文档窗体 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 ...