逻辑卷管理器(LVM) 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小 允许在多个物理设备间重新组织文件系统 将设备指定为物理卷 用一个或者多个物理卷来创建一个卷组 物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的 在物理卷上创建的逻辑卷是由物理区域(PE)组成 可以在逻辑卷上创建文件系统 LVM LVM: Logical Volume Manager, Version: 2 dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块 设备名:/dev/dm-# 软链接: /dev/mapper/VG_NAME-LV_NAME /dev/mapper/vol0-root /dev/VG_NAME/LV_NAME /dev/vol0/root LVM更改文件系统的容量 LVM可以弹性的更改LVM的容量通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低 LV的容量,或将其他设备中的PE加到LV中以加大容量 pv管理工具 显示pv信息 pvs:简要pv信息显示 pvdisplay 创建pv pvcreate /dev/DEVICE vg管理工具 显示卷组 vgs vgdisplay 创建卷组 vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...] 管理卷组 vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...] vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...] 删除卷组 先做pvmove,再做vgremove lv管理工具 显示逻辑卷 lvs Lvdisplay 创建逻辑卷 lvcreate -L #[mMgGtT] -n NAME VolumeGroup lvcreate -l 60%VG -n mylv testvg lvcreate -l 100%FREE -n yourlv testvg 删除逻辑卷 lvremove /dev/VG_NAME/LV_NAME 重设文件系统大小 fsadm [options] resize device [new_size[BKMGTEP]] resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size] 扩展和缩减逻辑卷 扩展逻辑卷: lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME resize2fs /dev/VG_NAME/LV_NAME lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME 缩减逻辑卷: umount /dev/VG_NAME/LV_NAME e2fsck -f /dev/VG_NAME/LV_NAME resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT] lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME mount 跨主机迁移卷组 源计算机上 1 在旧系统中,umount所有卷组上的逻辑卷 2 vgchange –a n vg0 lvdisplay 3 vgexport vg0 pvscan vgdisplay 拆下旧硬盘 在目标计算机上 4 在新系统中安装旧硬盘,并vgimport vg0. 5 vgchange –ay vg0 6 mount所有卷组上的逻辑卷 创建逻辑卷示例 创建物理卷 pvcreate /dev/sda3 为卷组分配物理卷 vgcreate vg0 /dev/sda3 从卷组创建逻辑卷 lvcreate -L 256M -n data vg0 mke2fs -j /dev/vg0/data mount /dev/vg0/data /mnt/data 逻辑卷管理器快照 快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝 对于需要备份或者复制的现有数据临时拷贝以及其它操作来说,快照是最合适的选择快照只有在它们和原 来的逻辑卷不同时才会消耗空间在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所 改变才会使用这些空间,当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。 快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据 建立快照的卷大小只需要原始逻辑卷的15%~20%就够了,也可以使用lvextend放大快照 逻辑卷管理器快照 快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动 到快照区,没有改动的区域则由快照区和文件系统共享由于快照区与原本的LV共用很多PE的区块,因此快照 与被快照的LV必须在同一个VG中.系统恢复的时候的文件数量不能高于快照区的实际容量 使用LVM快照 为现有逻辑卷创建快照 lvcreate -l 64 -s -n data-snapshot -p r /dev/vg0/data 挂载快照 mkdir -p /mnt/snap mount -o ro /dev/vg0/data-snapshot /mnt/snap 恢复快照 umount /dev/vg0/data-snapshot umount /dev/vg0/data lvconvert --merge /dev/vg0/data-snapshot 删除快照 umount /mnt/databackup lvremove /dev/vg0/databackup 练习 1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建 大小为5G的逻辑卷testlv;挂载至/users目录 2、新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制 /etc/pam.d目录至自己的家目录 3、扩展testlv至7G,要求archlinux用户的文件不能丢失 4、收缩testlv至3G,要求archlinux用户的文件不能丢失 5、对testlv创建快照,并尝试基于快照备份数据,验证快照的功能 centos6中 ---->首先准备好两块或者两块以上硬盘或分区,(分区格式调为8e),总大小为20G ┌─[root@centos6]─[~] └──╼ #lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 3.7G 0 rom /mnt/cdrom sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 10G 0 part sdc 8:32 0 20G 0 disk └─sdc1 8:33 0 10G 0 part sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 48.8G 0 part / ├─sda3 8:3 0 29.3G 0 part /data ├─sda4 8:4 0 1K 0 part ├─sda5 8:5 0 2G 0 part [SWAP] └─sda6 8:6 0 3G 0 part ---->创建pv ┌─[root@centos6]─[~] └──╼ #pvcreate /dev/sd{b1,c1} Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdc1" successfully created ---->创建vg ┌─[root@centos6]─[~] └──╼ #vgcreate -s 16M testvg /dev/sd{b1,c1} Volume group "testvg" successfully created ---->创建lv ┌─[root@centos6]─[~] └──╼ #lvcreate -L 5G -n testlv testvg Logical volume "testlv" created. ---->创建文件系统
┌──[root@centos6]─[~] └──╼ #mkfs -t ext4 -L "users new home" /dev/testvg/testlv mke2fs 1.41.12 (17-May-2010) Filesystem label=users new home 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. ---->创建挂载点目录 ┌─[root@centos6]─[~] └──╼ #mkdir /users ---->挂载 ┌─[root@centos6]─[~] └──╼ #mount /dev/testvg/testlv /users ---->创建新用户,指定新加目录 ┌─[root@centos6]─[~] └──╼ #useradd -m -d /users/archlinux archlinux ---->扩展lv到7G ┌─[root@centos6]─[~] └──╼ #lvextend -L 7G /dev/testvg/testlv -r Size of logical volume testvg/testlv changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents). Logical volume testlv successfully resized. resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/mapper/testvg-testlv is mounted on /users; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/mapper/testvg-testlv to 1835008 (4k) blocks. The filesystem on /dev/mapper/testvg-testlv is now 1835008 blocks long. ---->缩小lv到3G ┌─[root@centos6]─[~] └──╼ #umount /dev/testvg/testlv ┌─[root@centos6]─[~] └──╼ #fsck -t ext4 -f /dev/testvg/testlv fsck from util-linux-ng 2.17.2 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 users_new_home: 19/458752 files (0.0% non-contiguous), 64455/1835008 blocks ┌──[root@centos6]─[~] └──╼ #resize2fs /dev/testvg/testlv 3G resize2fs 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@centos6]─[~] └──╼ #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 testvg/testlv? [y/n]: y Size of logical volume testvg/testlv changed from 7.00 GiB (448 extents) to 3.00 GiB (192 extents). Logical volume testlv successfully resized. ---->创建快照 ┌─[root@centos6]─[~] └──╼ #lvcreate -L 1G -s -n testlv-snapshot -p r /dev/testvg/testlv Logical volume "testlv-snapshot" created. ---->挂载 ┌─[root@centos6]─[~] └──╼ #mount /dev/testvg/testlv-snapshot /snap mount: block device /dev/mapper/testvg-testlv--snapshot is write-protected, mounting read-only ---->删除pam.d下以k开头的文件 [archlinux@centos6 pam.d]$ rm -f k* [archlinux@centos6 pam.d]$ ls abrt-cli-root gdm reboot sudo-i abrt-gui-root gdm-autologin remote su-l atd gdm-fingerprint run_init system-auth authconfig gdm-password runuser system-auth-ac authconfig-gtk gnome-screensaver runuser-l system-auth.rpmnew authconfig-tui halt setup system-config-authentication chfn login smartcard-auth system-config-date chsh newrole smartcard-auth-ac system-config-kdump config-util other smartcard-auth.rpmnew system-config-keyboard crond passwd smtp system-config-language cups password-auth smtp.postfix system-config-network cvs password-auth-ac smtp.sendmail system-config-network-cmd eject password-auth.rpmnew sshd system-config-users fingerprint-auth polkit-1 ssh-keycat xdm fingerprint-auth-ac poweroff su xserver fingerprint-auth.rpmnew ppp sudo ---->恢复快照 ┌─[root@centos6]─[~] └──╼ #umount /snap ┌─[root@centos6]─[~] └──╼ #umount /users ┌─[root@centos6]─[~] └──╼ #lvconvert --merge /dev/testvg/testlv-snapshot Merging of volume testlv-snapshot started. testlv: Merged: 100.0% testlv: Merged: 100.0% Merge of snapshot into logical volume testlv has finished. Logical volume "testlv-snapshot" successfully removed ---->查看快照效果 ┌──[root@centos6]─[~] └──╼ #su - archlinux [archlinux@centos6 ~]$ cd pam.d/ [archlinux@centos6 pam.d]$ ls abrt-cli-root gdm-fingerprint poweroff sudo-i abrt-gui-root gdm-password ppp su-l atd gnome-screensaver reboot system-auth authconfig halt remote system-auth-ac authconfig-gtk kcheckpass run_init system-auth.rpmnew authconfig-tui kdm runuser system-config-authentication chfn kdm-np runuser-l system-config-date chsh kppp setup system-config-kdump config-util kscreensaver smartcard-auth system-config-keyboard crond ksu smartcard-auth-ac system-config-language cups login smartcard-auth.rpmnew system-config-network cvs newrole smtp system-config-network-cmd eject other smtp.postfix system-config-users fingerprint-auth passwd smtp.sendmail xdm fingerprint-auth-ac password-auth sshd xserver fingerprint-auth.rpmnew password-auth-ac ssh-keycat gdm password-auth.rpmnew su gdm-autologin polkit-1 sudo
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/97089