Linux上のLVMは論理ボリュームとLVMスナップショットの練習問題を作成します
26046 ワード
文書ディレクトリ
1、少なくとも2つのPVからなる大きさ20 GのtestvgというVGを作成する。PEサイズが16 MBであることが要求され、その後、ボリュームグループに5 Gサイズの論理ボリュームtestlvが作成される。/usersディレクトリにマウント
ディスク・サイズのデータを先に表示
[root@centos ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 49.5G 0 part
├─centos-root 253:0 0 45.6G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
sdc 8:32 0 10G 0 disk
sdd 8:48 0 10G 0 disk
sr0 11:0 1 4G 0 rom
ディスクにパーティションを作成し、パーティションサイズを最大に設定し、パーティションタイプを8 e(linux LVM)に変更します.
[root@centos ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519):
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@centos ~]# fdisk /dev/sdc
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519):
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
パーティションの状況を確認します
[root@centos ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 49.5G 0 part
├─centos-root 253:0 0 45.6G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part
sdc 8:32 0 10G 0 disk
└─sdc1 8:33 0 10G 0 part
sdd 8:48 0 10G 0 disk
sr0 11:0 1 4G 0 rom
pvの作成
[root@centos ~]# pvcreate /dev/sdb1 /dev/sdc1
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
[root@centos ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 49.51g 44.00m
/dev/sdb1 lvm2 --- 10.00g 10.00g
/dev/sdc1 lvm2 --- 10.00g 10.00g
ボリュームグループvgを作成しpeサイズを16 Mに設定
[root@centos ~]# vgcreate -s 16M /dev/testvg /dev/sdb1 /dev/sdc1
Volume group "testvg" successfully created
[root@centos ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- 49.51g 44.00m
testvg 2 0 0 wz--n- 19.97g 19.97g
論理ボリュームlvの作成
[root@centos ~]# lvcreate -L 5G -n testlv testvg
Logical volume "testlv" created.
論理ボリュームのフォーマットファイルシステム
[root@centos ~]# mkfs.ext4 /dev/testvg/testlv
mke2fs 1.42.9 (28-Dec-2013)
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
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
ルートの下にディレクトリを作成し、マウントを完了
[root@centos ~]# mkdir /users
[root@centos ~]# mount /dev/testvg/testlv /users/
[root@centos ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 49.5G 0 part
├─centos-root 253:0 0 45.6G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part
└─testvg-testlv 253:2 0 5G 0 lvm /users
sdc 8:32 0 10G 0 disk
└─sdc1 8:33 0 10G 0 part
sdd 8:48 0 10G 0 disk
sr0 11:0 1 4G 0 rom
2、新しいユーザーarchlinuxは、ホームディレクトリが/users/archlinuxであることを要求し、suはarchlinuxユーザーに切り替え、/etc/pamをコピーする.dディレクトリから自宅ディレクトリへ
ユーザーの作成
[root@centos ~]# useradd archlinux -d /users/archlinux
新しいユーザーのホームディレクトリを見てみましょう.
[root@centos ~]# cat /etc/passwd|tail -n 1
archlinux:x:1001:1001::/users/archlinux:/bin/bash
新しいユーザーにログインしてコピー
[root@centos ~]# su - archlinux
[archlinux@centos ~]$ ls
[archlinux@centos ~]$ cp -a /etc/pam.d/ ./
[archlinux@centos ~]$ ls
pam.d
3、testlvを7 Gまで拡張し、archlinuxユーザーのファイルを紛失してはいけない
まず論理ボリュームを拡張する
[root@centos ~]# lvextend -L +2G /dev/testvg/testlv
Size of logical volume testvg/testlv changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents).
Logical volume testlv successfully resized.
**ファイルシステムのサイズも変更**
[root@centos ~]# resize2fs /dev/testvg/testlv
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/testvg/testlv is mounted on /users; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/testvg/testlv is now 1835008 blocks long.
論理ボリュームのサイズの表示
[root@centos ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 46G 4.5G 42G 10% /
devtmpfs 893M 0 893M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.1M 901M 1% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 497M 182M 315M 37% /boot
tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/testvg-testlv 6.8G 23M 6.4G 1% /users
4、testlvを3 Gに縮小し、archlinuxユーザーのファイルを紛失してはいけない
まず、論理ボリュームをマウント解除し、ファイルシステムを確認します.
[root@centos ~]# umount /dev/testvg/testlv
[root@centos ~]# e2fsck -f /dev/testvg/testlv
e2fsck 1.42.9 (28-Dec-2013)
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/testvg/testlv: 72/458752 files (0.0% non-contiguous), 67382/1835008 blocks
ファイルシステムのサイズを3 Gに変更しました.
[root@centos ~]# resize2fs /dev/testvg/testlv 3G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/testvg/testlv to 786432 (4k) blocks.
The filesystem on /dev/testvg/testlv is now 786432 blocks long.
論理ボリュームを一時的にマウントしてファイルシステムのサイズを確認できます.
[root@centos ~]# mount /dev/testvg/testlv /users/
[root@centos ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 46G 4.5G 42G 10% /
devtmpfs 893M 0 893M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.1M 901M 1% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 497M 182M 315M 37% /boot
tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/testvg-testlv 2.9G 16M 2.7G 1% /users
マウントを解除し、論理ボリュームのサイズを4 G減算します.
[root@centos ~]# umount /users/
[root@centos ~]# lvreduce -L -4G /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 7.00 GiB (448 extents) to 3.00 GiB (192 extents).
Logical volume testlv successfully resized.
論理ボリュームをマウントした後、ファイルシステムと論理ボリュームのサイズが3 Gであることを確認します.
[root@centos ~]# mount /dev/testvg/testlv /users/
[root@centos ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 46G 4.5G 42G 10% /
devtmpfs 893M 0 893M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.1M 901M 1% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 497M 182M 315M 37% /boot
tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/testvg-testlv 2.9G 16M 2.7G 1% /users
[root@centos ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 49.5G 0 part
├─centos-root 253:0 0 45.6G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part
└─testvg-testlv 253:2 0 3G 0 lvm /users
sdc 8:32 0 10G 0 disk
└─sdc1 8:33 0 10G 0 part
sdd 8:48 0 10G 0 disk
sr0 11:0 1 4G 0 rom
[root@centos ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 45.59g
swap centos -wi-ao---- 3.88g
testlv testvg -wi-ao---- 3.00g
5、testlvに対してスナップショットを作成し、スナップショットに基づいてデータをバックアップし、スナップショットの機能を確認する
まず、/users/archlinux/ディレクトリの下にファイル1を作成します.内容はabcdです.
[root@centos ~]# cd /users/archlinux/
[root@centos archlinux]# ls
pam.d
[root@centos archlinux]# echo "abcd" >1
[root@centos archlinux]# cat 1
abcd
testlv論理ボリュームのスナップショットを作成します.名前はsnap-data、スナップショットの権限は読み取り専用、サイズは1 Gです.
[root@centos archlinux]# cd
[root@centos ~]# lvcreate -L 1G -s -n snap-data -p r /dev/testvg/testlv
Logical volume "snap-data" created.
ディレクトリ/mnt/snapを作成し、スナップショットをこのディレクトリにマウント
[root@centos ~]# mkdir -p /mnt/snap
[root@centos ~]# mount -o ro /dev/testvg/snap-data /mnt/snap
[root@centos ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 49.5G 0 part
├─centos-root 253:0 0 45.6G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part
├─testvg-testlv-real 253:3 0 3G 0 lvm
│ ├─testvg-testlv 253:2 0 3G 0 lvm /users
│ └─testvg-snap--data 253:5 0 3G 1 lvm /mnt/snap
└─testvg-snap--data-cow 253:4 0 1G 1 lvm
└─testvg-snap--data 253:5 0 3G 1 lvm /mnt/snap
sdc 8:32 0 10G 0 disk
└─sdc1 8:33 0 10G 0 part
sdd 8:48 0 10G 0 disk
sr0 11:0 1 4G 0 rom
lvsを使用してスナップショットを表示します.サイズは1 G、ソースはtestlvです.
[root@centos ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 45.59g
swap centos -wi-ao---- 3.88g
snap-data testvg sri-aos--- 1.00g testlv 0.01
testlv testvg owi-aos--- 3.00g
/users/archlinux/ディレクトリにアクセスしてファイル1の内容を「aabcc」に変更
[root@centos ~]# cd /users/archlinux/
[root@centos archlinux]# echo "aabbcc" > 1
[root@centos archlinux]# cat 1
aabbcc
スナップショットを復元
[root@centos archlinux]# cd
[root@centos ~]# umount /dev/testvg/snap-data
[root@centos ~]# umount /dev/testvg/testlv
[root@centos ~]# lvconvert --merge /dev/testvg/snap-data
Merging of volume snap-data started.
testlv: Merged: 100.0%
[root@centos ~]# mount /dev/testvg/testlv /users/
[root@centos ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 49.5G 0 part
├─centos-root 253:0 0 45.6G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part
└─testvg-testlv 253:2 0 3G 0 lvm /users
sdc 8:32 0 10G 0 disk
└─sdc1 8:33 0 10G 0 part
sdd 8:48 0 10G 0 disk
sr0 11:0 1 4G 0 rom
以前に変更したファイル1を表示すると、スナップショット前の内容であることを証明する「abcd」という内容が表示されます.
[root@centos ~]# cd /users/archlinux/
[root@centos archlinux]# ls
1 pam.d
[root@centos archlinux]# cat 1
abcd