Linux上のLVMは論理ボリュームとLVMスナップショットの練習問題を作成します

26046 ワード

文書ディレクトリ

  • 1、少なくとも2つのPVからなる大きさ20 GのtestvgというVGを作成する.PEサイズが16 MBであることが要求され、その後、ボリュームグループに5 Gサイズの論理ボリュームtestlvが作成される./usersディレクトリ
  • にマウント
  • 2、新しいユーザーarchlinuxは、ホームディレクトリが/users/archlinuxであることを要求し、suはarchlinuxユーザーに切り替え、/etc/pamをコピーする.dディレクトリから自宅ディレクトリ
  • 3、testlvを7 Gに拡張し、archlinuxユーザーのファイルが
  • を失うことができないことを要求する.
  • 4、testlvを3 Gに縮小し、archlinuxユーザーのファイルが
  • を失うことができないことを要求する.
  • 5、testlvに対してスナップショットを作成し、スナップショットに基づいてデータをバックアップし、スナップショットの機能
  • を確認しようと試みる.

    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