博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux LVM 总结
阅读量:6239 次
发布时间:2019-06-22

本文共 9346 字,大约阅读时间需要 31 分钟。

LVM全称是Logical Volume Manager. 它主要是实现硬盘容量的动态扩展. 一般用于存储数据量无法预估的场景, 例如Linux的根目录用lvm存储.

 

LVM创建过程一般是这样的

1. 硬盘先分区: 一般是一个硬盘一个分区, 或者是多个分区在一个硬盘

    命令: fdisk

2. PV(Physcial Volumes)划分, 可以把几个硬盘分区化成PV

    命令: pvcreate, pvs, pvdisplay, pvremove, pvmove, pvscan

3. VG(Volume Group), 把几个或所有PV划分成可用空间, 有就是一定大小的块, 块的大小可以自己定义, 默认是4M

    命令:vgcreate, vgs, vgdisplay, vgreduce, vgextend, vgscan

4. LV(Logical Volumes), 逻辑卷划分, 将vg划分成大小不超过vg总量的lv

    命令: lvcreate, lvs, lvdisplay, lvremove, lvreduce, lvextend, lvscan

5. 格式化磁盘

    命令: mke2fs

6. 挂载

    命令: mount

实例分别为2G, 3G, 4G的硬盘, 全部划分成pv, 其中的5G划分成lv, 并格式化成ext4.

1. 三块硬盘分别分成3个区

[root@centos ~]# 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: 53.7 GB, 53687091200 bytes255 heads, 63 sectors/track, 6527 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x289452a0   Device Boot      Start         End      Blocks   Id  SystemCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 1First cylinder (1-6527, default 1): Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-6527, default 6527): +2GCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 2First cylinder (263-6527, default 263): Using default value 263Last cylinder, +cylinders or +size{K,M,G} (263-6527, default 6527): +3GCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 3First cylinder (656-6527, default 656): Using default value 656Last cylinder, +cylinders or +size{K,M,G} (656-6527, default 6527): +4GCommand (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.[root@centos ~]# fdisk -l /dev/sdbDisk /dev/sdb: 53.7 GB, 53687091200 bytes255 heads, 63 sectors/track, 6527 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x289452a0   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1         262     2104483+  83  Linux/dev/sdb2             263         655     3156772+  83  Linux/dev/sdb3             656        1178     4200997+  83  Linux

 

2. 三个分区全部转换成pv

[root@centos ~]# pvcreate /dev/sdb{1,2,3}  Physical volume "/dev/sdb1" successfully created  Physical volume "/dev/sdb2" successfully created  Physical volume "/dev/sdb3" successfully created[root@centos ~]# pvs  PV         VG        Fmt  Attr PSize  PFree  /dev/sda2  vg_centos lvm2 a--  49.51g    0   /dev/sdb1            lvm2 ---   2.01g 2.01g  /dev/sdb2            lvm2 ---   3.01g 3.01g  /dev/sdb3            lvm2 ---   4.01g 4.01g

3. pv转换成vg并且取名testvg

[root@centos ~]# vg testvg /dev/sdb{1,2,3}-bash: vg: command not found[root@centos ~]# vgcreate testvg /dev/sdb{1,2,3}  Volume group "testvg" successfully created[root@centos ~]# vgs  VG        #PV #LV #SN Attr   VSize  VFree  testvg      3   0   0 wz--n-  9.02g 9.02g  vg_centos   1   2   0 wz--n- 49.51g    0

4. 划分成5G lv并且取名testlv

[root@centos ~]# lvcreate testvg -L 5G -n testlv  Logical volume "testlv" created[root@centos ~]# lvs  LV      VG        Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert  testlv  testvg    -wi-a-----  5.00g                                                      lv_root vg_centos -wi-ao---- 47.57g                                                      lv_swap vg_centos -wi-ao----  1.94g

 

5. 格式化新建的testlv为ext4

[root@centos ~]# mke2fs -t ext4 /dev/testvg/testlvmke2fs 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 28 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.

 

6. 加载新建的lv并确定4G

[root@centos ~]# mount /dev/testvg/testlv /data[root@centos ~]# df -lhFilesystem            Size  Used Avail Use% Mounted on/dev/mapper/vg_centos-lv_root                       47G  4.7G   40G  11% /tmpfs                 495M   72K  495M   1% /dev/shm/dev/sda1             477M   29M  424M   7% /boot/dev/mapper/testvg-testlv                      4.8G   10M  4.6G   1% /data

 

需要几点

1. 扩展物理边界可以直接加硬盘,pvcreate, vgextend, lvextend

[root@centos ~]# lvextend -L 6G testlv  Path required for Logical Volume "testlv"  Please provide a volume group name  Run `lvextend --help‘ for more information.[root@centos ~]# lvextend -L 6G /dev/testvg/testlv  Size of logical volume testvg/testlv changed from 5.00 GiB (1280 extents) to 6.00 GiB (1536 extents).  Logical volume testlv successfully resized

2.缩减硬盘, 要先离线, 强制检测, 缩减逻辑空间, vgreduce

[root@centos ~]# e2fsck -f /dev/testvg/testlve2fsck 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/testvg/testlv: 12/327680 files (0.0% non-contiguous), 55950/1310720 blocks[root@centos ~]# resize2fs /dev/testvg/testlv 3Gresize2fs 1.41.12 (17-May-2010)Resizing the filesystem on /dev/testvg/testlv to 786432 (4k) blocks.The filesystem on /dev/testvg/testlv is now 786432 blocks long.[root@centos ~]# lvreduce testlv -L 3G  Path required for Logical Volume "testlv"  Please provide a volume group name  Run `lvreduce --help‘ for more information.[root@centos ~]# lvreduce -L 3G /dev/testvg/testlv  WARNING: Reducing active logical volume to 3.00 GiB  THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce testlv? [y/n]: y    Size of logical volume testvg/testlv changed from 6.00 GiB (1536 extents) to 3.00 GiB (768 extents).  Logical volume testlv successfully resized[root@centos ~]# df -lhFilesystem            Size  Used Avail Use% Mounted on/dev/mapper/vg_centos-lv_root                       47G  4.7G   40G  11% /tmpfs                 495M   72K  495M   1% /dev/shm/dev/sda1             477M   29M  424M   7% /boot#用pedisplay查出内个硬盘的快是free的[root@centos ~]# pvdisplay  --- Physical volume ---  PV Name               /dev/sdb1  VG Name               testvg  PV Size               2.01 GiB / not usable 3.16 MiB  Allocatable           yes   PE Size               4.00 MiB  Total PE              513  Free PE               513  Allocated PE          0  PV UUID               QsN7uK-DTsA-IVdF-2TFY-jjcs-dN4E-UPa9XP     --- Physical volume ---  PV Name               /dev/sdb3  VG Name               testvg  PV Size               4.01 GiB / not usable 2.54 MiB  Allocatable           yes   PE Size               4.00 MiB  Total PE              1025  Free PE               257  Allocated PE          768  PV UUID               2XqZ73-EBnb-yJF9-mIQQ-8VRg-46h3-T1fwLW     --- Physical volume ---  PV Name               /dev/sdb2  VG Name               testvg  PV Size               3.01 GiB / not usable 2.79 MiB  Allocatable           yes   PE Size               4.00 MiB  Total PE              770  Free PE               770  Allocated PE          0  PV UUID               BRUkrH-rSgS-a3VD-2KRC-yxHV-Cd76-eI6MX4     --- Physical volume ---  PV Name               /dev/sda2  VG Name               vg_centos  PV Size               49.51 GiB / not usable 3.00 MiB  Allocatable           yes (but full)  PE Size               4.00 MiB  Total PE              12674  Free PE               0  Allocated PE          12674  PV UUID               CbCr1K-jw10-L3fC-Bsxm-Owql-zxQd-60cNab    #从vg移除硬盘, 不能直接reduce vg先用用pe移除硬盘块数据  [root@centos ~]# vgreduce testvg /dev/sdb1    Physical volume "/dev/sdb3" still in use  [root@centos ~]# pvmove /dev/sdb1  No data to move for testvg  [root@centos ~]# pvmove /dev/sdb2  /dev/sdb2: Moved: 0.5%  /dev/sdb2: Moved: 25.5%  /dev/sdb2: Moved: 51.0%  /dev/sdb2: Moved: 77.0%  /dev/sdb2: Moved: 100.0%      再reduce  [root@centos ~]# vgreduce testvg /dev/sdb1  Removed "/dev/sdb1" from volume group "testvg"[root@centos ~]# vgreduce testvg /dev/sdb2  Removed "/dev/sdb2" from volume group "testvg"[root@centos ~]# vgreduce testvg /dev/sdb3

 

3. lv的正式设备文件是在/dev/dm-*, 有两个符号连接文件指向这个文件/dev/vg名字/lv名字 和/dev/mapper/vg名字-lv名字

[root@centos ~]# ll /dev/testvg/testlvlrwxrwxrwx. 1 root root 7 Sep 23 11:12 /dev/testvg/testlv -> ../dm-2[root@centos ~]# ll /dev/mapper/testvg-testlvlrwxrwxrwx. 1 root root 7 Sep 23 11:12 /dev/mapper/testvg-testlv -> ../dm-2

 

补充:snapshot

snapshot就是快照的意思, 它是实现来相同逻辑卷上的"备份"功能, 需要注意的是, snapshot不能取代一般意义上的备份. 

快照的创建方式和创建lv一样, 只是要添加-s来指定快照卷.

接着上面的立即来创建个128M快照卷, 并且挂载到/snap

[root@centos ~]# lvcreate -L 128M -s -n lvsnap /dev/testvg/testlv  Logical volume "lvsnap" created[root@centos ~]# mount /dev/testvg/lvsnap /snap

注意: 创在快照卷的时候, 最好停止在lv上的所有操作, 以免数据混乱

转载地址:http://sydia.baihongyu.com/

你可能感兴趣的文章
嵌入式开发之cgic库---cgi库的使用
查看>>
clickhouse安装 Requires: libstdc++.so.6(GLIBCXX_3.4.19)(64bit)
查看>>
FFT快速傅立叶变换
查看>>
<刘未鹏 MIND HACKS>读书笔记
查看>>
locate
查看>>
AceyOffice教程--如何判断单元格的内容
查看>>
前端 -- 超链接导航栏案例
查看>>
软工网络15个人作业
查看>>
css 兼容性写法,CSS hack写法
查看>>
剑指offer 之 C/C++基础知识1
查看>>
(KMP 暴力)Corporate Identity -- hdu -- 2328
查看>>
Silverlight程序中访问配置文件
查看>>
Linux下利用rsync实现多服务器文件同步
查看>>
2.3 Rust函数
查看>>
1.3 IDAE 中使用GO开发项目
查看>>
Activity、Fragment、ViewPage
查看>>
《信息安全系统设计基础》课程总结
查看>>
衣码对照表
查看>>
Vue-Router导航守卫
查看>>
tool
查看>>