LVM逻辑卷管理
2017-08-17 19:18
423 查看
LVM逻辑卷管理
逻辑卷管理器(英语:Logical Volume Manager,缩写为LVM),又译为逻辑卷宗管理器、逻辑扇区管理器、逻辑磁盘管理器,是Linux核心所提供的逻辑卷管理功能。它在硬盘的硬盘分区之上,又创建一个逻辑层,以方便系统管理硬盘分区系统。
lvm的原理:相当于将多个物理的磁盘设备,集中化后创建为一个逻辑的设备。这样便很轻松的对分区进行管理
创建LVM的流程:
加入磁盘
新建分区
fdisk /dev/磁盘设备 (新建主分区并修改分区类型为8e lvm类型)
创建pv:
pvcreate 分区1 分区2 ...
创建vg:
vgcreate vg 分区1 分区2 ....
创建lv:
lvcreate -n /dev/vg/lv -L lv卷的大小
格式化:
mkfs.ext4 /dev/vg/lv
挂载:
mount /dev/vg/lv /挂载点
echo “ /dev/vg/lv /挂载点 ext4 defaults 0 0 ” >>/etc/fstab
扩展LVM的流程:
加入磁盘:
新建分区:
扩容pv:
pvcreate /分区
扩容vg:
vgextend /dev/vg 分区
扩容lv:
lvextend /dev/vg/lv -L +扩容的大小
重构文件系统大小:
resize2fs /dev/vg/lv
现在有4块未分区的磁盘:sdb sdc sdd sde
对sdb sdc sde分区 分区类型改为8e: ##对sdc sde做同样的操作
开始逻辑卷的创建:
1 首先创建pv:
pv是将磁盘分区转换成一个个的小块,这些小块被称为pe,默认的1pe=4M 方便动态分配。
命令格式:pvcreate 分区1 分区2 ...
查看pv: pvs
vg是将pv转换后的分区创建为一个整体,相当于融和为一个大的磁盘:
命令格式:vgcreate vg名 分区1 分区2 ....
查看vg: vgs ##可以看到整合后分区
lv是将整合后的vg再分出一个个分区
命令格式:lvcreate -n /dev/vg名/lv分区 -L 分出大小
查看lv:lvs
逻辑卷创建完成后,就和正常的分区一样了,接下来就该格式化了挂载分区了
格式化分区:
挂载分区:
逻辑卷lv扩容
当创建的逻辑卷lv内的数据文件过多,需要扩容的时候就体现出逻辑卷的方便快捷和强大了。
现在有一块硬盘sde未分区,现在要用这块硬盘给lv扩容。
给新硬盘分区:
逻辑卷扩容流程:
1.将主分区加入到pv
3.给lv扩容:
4.重新构建文件系统大小:
因为文件系统前面已经格式化,设置了文件系统。里面也存放了文件,不能重新格式化文件系统,而扩容了逻辑卷,文件系统无法检测到。这就需要使用resize2fs这条命令重新构建文件系统了。
逻辑卷管理器(英语:Logical Volume Manager,缩写为LVM),又译为逻辑卷宗管理器、逻辑扇区管理器、逻辑磁盘管理器,是Linux核心所提供的逻辑卷管理功能。它在硬盘的硬盘分区之上,又创建一个逻辑层,以方便系统管理硬盘分区系统。
lvm的原理:相当于将多个物理的磁盘设备,集中化后创建为一个逻辑的设备。这样便很轻松的对分区进行管理
创建LVM的流程:
加入磁盘
新建分区
fdisk /dev/磁盘设备 (新建主分区并修改分区类型为8e lvm类型)
创建pv:
pvcreate 分区1 分区2 ...
创建vg:
vgcreate vg 分区1 分区2 ....
创建lv:
lvcreate -n /dev/vg/lv -L lv卷的大小
格式化:
mkfs.ext4 /dev/vg/lv
挂载:
mount /dev/vg/lv /挂载点
echo “ /dev/vg/lv /挂载点 ext4 defaults 0 0 ” >>/etc/fstab
扩展LVM的流程:
加入磁盘:
新建分区:
扩容pv:
pvcreate /分区
扩容vg:
vgextend /dev/vg 分区
扩容lv:
lvextend /dev/vg/lv -L +扩容的大小
重构文件系统大小:
resize2fs /dev/vg/lv
现在有4块未分区的磁盘:sdb sdc sdd sde
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom sda 8:0 0 20G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 19.5G 0 part ├─VolGroup-lv_root (dm-0) 253:0 0 17.6G 0 lvm / └─VolGroup-lv_swap (dm-1) 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk sdc 8:32 0 20G 0 disk sdd 8:48 0 20G 0 disk sde 8:64 0 20G 0 disk[root@localhost ~]# fdisk -l ##可以查看所有磁盘的大小,以及分区情况
Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x000172ae Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 2611 20458496 8e Linux LVM Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x00000000 Disk /dev/sdc: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x00000000 Disk /dev/sdd: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x00000000 Disk /dev/sde: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x00000000 Disk /dev/mapper/VolGroup-lv_root: 18.9 GB, 18865979392 bytes 255 heads, 63 sectors/track, 2293 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: 0x00000000 Disk /dev/mapper/VolGroup-lv_swap: 2080 MB, 2080374784 bytes 255 heads, 63 sectors/track, 252 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: 0x00000000
对sdb sdc sde分区 分区类型改为8e: ##对sdc sde做同样的操作
[root@localhost ~]# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x046c7ceb. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) 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): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-2610, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): Using default value 2610 Command (m for help): t Selected partition 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x046c7ceb Device Boot Start End Blocks Id System /dev/sdb1 1 2610 20964793+ 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
开始逻辑卷的创建:
1 首先创建pv:
pv是将磁盘分区转换成一个个的小块,这些小块被称为pe,默认的1pe=4M 方便动态分配。
命令格式:pvcreate 分区1 分区2 ...
查看pv: pvs
[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdc1" successfully created Physical volume "/dev/sdd1" successfully created [root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 lvm2 a-- 19.99g 19.99g /dev/sdc1 lvm2 a-- 19.99g 19.99g /dev/sdd1 lvm2 a-- 19.99g 19.99g2 然后创建vg:
vg是将pv转换后的分区创建为一个整体,相当于融和为一个大的磁盘:
命令格式:vgcreate vg名 分区1 分区2 ....
查看vg: vgs ##可以看到整合后分区
[root@localhost ~]# vgcreate my_vg /dev/sdb1 /dev/sdc1 /dev/sdd1 Volume group "my_vg" successfully created [root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree VolGroup 1 2 0 wz--n- 19.51g 0 my_vg 3 0 0 wz--n- 59.98g 59.98g3 最后创建lv:
lv是将整合后的vg再分出一个个分区
命令格式:lvcreate -n /dev/vg名/lv分区 -L 分出大小
查看lv:lvs
[root@localhost ~]# lvcreate -n /dev/my_vg/my_lv -L 40G Logical volume "my_lv" created [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lv_root VolGroup -wi-ao---- 17.57g lv_swap VolGroup -wi-ao---- 1.94g my_lv my_vg -wi-a----- 40.00g
逻辑卷创建完成后,就和正常的分区一样了,接下来就该格式化了挂载分区了
格式化分区:
[root@localhost ~]# mkfs.ext4 /dev/my_vg/my_lv mke2fs 1.41.12 (17-May-2010) 文件系统标签= 操作系统:Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 2621440 inodes, 10485760 blocks 524288 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=4294967296 320 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, 1605632, 2654208, 4096000, 7962624 正在写入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 This filesystem will be automatically checked every 20 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
挂载分区:
[root@localhost ~]# mkdir /data [root@localhost ~]# mount /dev/my_vg/my_lv /data/写入到开机挂载文件/etc/fstab:
[root@localhost ~]# echo "/dev/my_vg/my_lv /data ext4 defaults 0 0 " >>/etc/fstab [root@localhost ~]# tail -1 /etc/fstab /dev/my_vg/my_lv /data ext4 defaults 0 0验证挂载情况:
[root@localhost ~]# mount -a [root@localhost ~]# mount /dev/mapper/VolGroup-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/mapper/my_vg-my_lv on /data type ext4 (rw)
[root@localhost ~]# df -lh Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 18G 1.5G 15G 10% / tmpfs 242M 0 242M 0% /dev/shm /dev/sda1 485M 34M 427M 8% /boot /dev/mapper/my_vg-my_lv 40G 176M 38G 1% /data
逻辑卷lv扩容
当创建的逻辑卷lv内的数据文件过多,需要扩容的时候就体现出逻辑卷的方便快捷和强大了。
现在有一块硬盘sde未分区,现在要用这块硬盘给lv扩容。
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom sda 8:0 0 20G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 19.5G 0 part ├─VolGroup-lv_root (dm-0) 253:0 0 17.6G 0 lvm / └─VolGroup-lv_swap (dm-1) 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 20G 0 part └─my_vg-my_lv (dm-2) 253:2 0 40G 0 lvm /data sdc 8:32 0 20G 0 disk └─sdc1 8:33 0 20G 0 part └─my_vg-my_lv (dm-2) 253:2 0 40G 0 lvm /data sdd 8:48 0 20G 0 disk └─sdd1 8:49 0 20G 0 part └─my_vg-my_lv (dm-2) 253:2 0 40G 0 lvm /data sde 8:64 0 20G 0 disk
给新硬盘分区:
[root@localhost ~]# fdisk /dev/sde Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xe0bca983. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) 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): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-2610, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): Using default value 2610 Command (m for help): t Selected partition 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
逻辑卷扩容流程:
1.将主分区加入到pv
[root@localhost ~]# pvcreate /dev/sde1 Physical volume "/dev/sde1" successfully created [root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 VolGroup lvm2 a-- 19.51g 0 /dev/sdb1 my_vg lvm2 a-- 19.99g 0 /dev/sdc1 my_vg lvm2 a-- 19.99g 0 /dev/sdd1 my_vg lvm2 a-- 19.99g 19.98g /dev/sde1 lvm2 a-- 19.99g 19.99g2.加pv分区加入到vg容器里
[root@localhost ~]# vgextend /dev/my_vg /dev/sde1 Volume group "my_vg" successfully extended [root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree VolGroup 1 2 0 wz--n- 19.51g 0 my_vg 4 1 0 wz--n- 79.97g 39.97g##vsize是总大小 vfree是剩余容量
3.给lv扩容:
[root@localhost ~]# lvextend /dev/my_vg/my_lv -L +20G Extending logical volume my_lv to 60.00 GiB Logical volume my_lv successfully resized [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lv_root VolGroup -wi-ao---- 17.57g lv_swap VolGroup -wi-ao---- 1.94g my_lv my_vg -wi-ao---- 60.00g(可以写作是:lvcreatend /dev/my_vg/my_lv /dev/sde1将整块磁盘扩容给lv)
4.重新构建文件系统大小:
因为文件系统前面已经格式化,设置了文件系统。里面也存放了文件,不能重新格式化文件系统,而扩容了逻辑卷,文件系统无法检测到。这就需要使用resize2fs这条命令重新构建文件系统了。
[root@localhost ~]# resize2fs /dev/my_vg/my_lv resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/my_vg/my_lv is mounted on /data; on-line resizing required old desc_blocks = 3, new_desc_blocks = 4 Performing an on-line resize of /dev/my_vg/my_lv to 15728640 (4k) blocks. The filesystem on /dev/my_vg/my_lv is now 15728640 blocks long.5.查看验证:
[root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 18G 1.5G 15G 10% / tmpfs 242M 0 242M 0% /dev/shm /dev/sda1 485M 34M 427M 8% /boot /dev/mapper/my_vg-my_lv 60G 180M 56G 1% /data [root@localhost ~]#
相关文章推荐
- Linux系统管理之LVM逻辑卷管理
- lvm_逻辑卷管理
- LVM(Logical volume management,逻辑卷管理)
- RHEL6上逻辑卷管理LVM
- linux-LVM(逻辑卷管理),动态管理存储空间
- lvm逻辑卷管理和软Raid设置
- CentOS 6.3下配置LVM(逻辑卷管理)
- 配置LVM(逻辑卷管理)
- LVM逻辑卷管理
- Linux的逻辑卷管理(LVM)详解
- LVM--逻辑卷管理@安装、格式化、挂载、开机自动挂载完整篇
- LVM逻辑卷管理总结
- 【初学菜鸟作--LVM逻辑卷管理RAID软阵列】
- LVM逻辑卷管理(一)
- LVM -- Linux 逻辑卷管理详解(LVM)
- lvm(逻辑卷管理)
- LVM逻辑卷管理
- LVM详解;Linux逻辑卷管理
- 逻辑卷管理(LVM) Linux 用户指南
- LVM逻辑卷管理---用来扩展分区内存