CentOS7でLVMに挑戦

以前の記事で折角ハードウェアRAIDカードを入れてRAIDアレイを作ったので
次はファイルシステムなわけですが、折角なのでLVM配下にします。

LinuxのLVMでは、こんな感じで作っていきます。
作成はちょっと手間ですが、一手間かけると後で色々楽出来るので頑張りましょうw

basic-lvm-volumeLVMの概念図

  1. 物理ボリューム(Physical Volume:PV)の作成
    我が家の場合、ハードウェアRAIDカード上に、出来たドライブを4つのパーテーションに区切って使っています。
    こいつをPVとして割り当てます。
  2. ボリュームグループ(Volume Group:VG)の作成
    出来上がったPVを一括りにグループとして定義します。
    複数のPVを1つのVGにまとめてソフトウェアRAIDなんかも出来たりします。
  3. 論理ボリューム(Logical Volume:LV)の作成
    出来上がったVGをOSに見せるためにLVを定義します。
    1つのVGを複数のLVに分割することも出来ます(むしろその為にLVを使うわけですが)
  4. ファイルシステムの作成
    OSからは、LVの単位でファイルシステムを作って利用します。
    ここまで来るともはや物理デバイスが何で・・・とか関係ありませんw

今Kernelから見えてる物理ドライブ構成はこんな感じ。
(ハードウェアRAIDカードで作ったArrayについてはこちらを参照ください)

[root@nas01 ~]# gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.6

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 17578119168 sectors, 8.2 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): BA38A739-D6D8-42A0-B248-75EBF24FE472
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 17578119134
Partitions will be aligned on 2048-sector boundaries
Total free space is 398249917 sectors (189.9 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      4294969343   2.0 TiB     8E00  Linux LVM
   2      4294969344      8589936639   2.0 TiB     8E00  Linux LVM
   3      8589936640     12884903935   2.0 TiB     8E00  Linux LVM
   4     12884903936     17179871231   2.0 TiB     8E00  Linux LVM
[root@nas01 ~]# 
  1. 物理ディスクの定義
    先ずはここから。
    [root@nas01 ~]# pvcreate /dev/sda1
    WARNING: xfs signature detected on /dev/sda1 at offset 0. Wipe it? [y/n] y
      Wiping xfs signature on /dev/sda1.
      Physical volume "/dev/sda1" successfully created
    [root@nas01 ~]# pvcreate /dev/sda2
    WARNING: xfs signature detected on /dev/sda2 at offset 0. Wipe it? [y/n] y
      Wiping xfs signature on /dev/sda2.
      Physical volume "/dev/sda2" successfully created
    [root@nas01 ~]# pvcreate /dev/sda3
    WARNING: xfs signature detected on /dev/sda3 at offset 0. Wipe it? [y/n] y
      Wiping xfs signature on /dev/sda3.
      Physical volume "/dev/sda3" successfully created
    [root@nas01 ~]# pvcreate /dev/sda4
    WARNING: xfs signature detected on /dev/sda4 at offset 0. Wipe it? [y/n] y
      Wiping xfs signature on /dev/sda4.
      Physical volume "/dev/sda4" successfully created
    [root@nas01 ~]# 
    

    出来上がったPVはこんな感じです。
    この単位が最低の単位になります。

    [root@nas01 ~]# pvdisplay /dev/sda1
      --- Physical volume ---
      PV Name               /dev/sda1
      VG Name               VG01_share
      PV Size               2.00 TiB / not usable 4.00 MiB
      Allocatable           yes (but full)
      PE Size               4.00 MiB
      Total PE              524287
      Free PE               0
      Allocated PE          524287
      PV UUID               iJ4eFn-abe6-OgYs-cCRk-W6eg-4oPH-5TK9uu
       
    [root@nas01 ~]# pvdisplay /dev/sda2
      --- Physical volume ---
      PV Name               /dev/sda2
      VG Name               VG02_home
      PV Size               2.00 TiB / not usable 4.00 MiB
      Allocatable           yes (but full)
      PE Size               4.00 MiB
      Total PE              524287
      Free PE               0
      Allocated PE          524287
      PV UUID               O9Cc04-Qx7A-zvIm-ekbb-AmyY-wcPe-Y6OMfT
       
    [root@nas01 ~]# pvdisplay /dev/sda3
      --- Physical volume ---
      PV Name               /dev/sda3
      VG Name               VG03_backup
      PV Size               2.00 TiB / not usable 4.00 MiB
      Allocatable           yes (but full)
      PE Size               4.00 MiB
      Total PE              524287
      Free PE               0
      Allocated PE          524287
      PV UUID               aK23p6-frrn-x362-6V3t-el9x-Ih7J-B2pZD9
       
    [root@nas01 ~]# pvdisplay /dev/sda4
      --- Physical volume ---
      PV Name               /dev/sda4
      VG Name               VG04_tmp
      PV Size               2.00 TiB / not usable 4.00 MiB
      Allocatable           yes (but full)
      PE Size               4.00 MiB
      Total PE              524287
      Free PE               0
      Allocated PE          524287
      PV UUID               jze3kA-8xVn-4ONn-cjh6-nyMy-PL4f-wX3alE
       
    [root@nas01 ~]# 
    
  2. ボリュームグループの定義
    今回はハードウェアRAIDなんで、Volume Groupに複数の物理ディスクを割り当てない方向で。
    (この辺はちょっと運用含め考えないといかんのですが)
    [root@nas01 ~]# pvcreate /dev/sda1
    WARNING: xfs signature detected on /dev/sda1 at offset 0. Wipe it? [y/n] y
      Wiping xfs signature on /dev/sda1.
      Physical volume "/dev/sda1" successfully created
    [root@nas01 ~]# pvcreate /dev/sda2
    WARNING: xfs signature detected on /dev/sda2 at offset 0. Wipe it? [y/n] y
      Wiping xfs signature on /dev/sda2.
      Physical volume "/dev/sda2" successfully created
    [root@nas01 ~]# pvcreate /dev/sda3
    WARNING: xfs signature detected on /dev/sda3 at offset 0. Wipe it? [y/n] y
      Wiping xfs signature on /dev/sda3.
      Physical volume "/dev/sda3" successfully created
    [root@nas01 ~]# pvcreate /dev/sda4
    WARNING: xfs signature detected on /dev/sda4 at offset 0. Wipe it? [y/n] y
      Wiping xfs signature on /dev/sda4.
      Physical volume "/dev/sda4" successfully created
    [root@nas01 ~]# 
    

    出来上がったVGはこんな感じです。
    まぁ普通ですねw

    [root@nas01 ~]# vgdisplay VG01_share
      --- Volume group ---
      VG Name               VG01_share
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               2.00 TiB
      PE Size               4.00 MiB
      Total PE              524287
      Alloc PE / Size       0 / 0   
      Free  PE / Size       524287 / 2.00 TiB
      VG UUID               KUUuY5-lles-3CuG-bTWm-nHtt-9Wo1-lb2tHW
       
    [root@nas01 ~]# vgdisplay VG02_home
      --- Volume group ---
      VG Name               VG02_home
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               2.00 TiB
      PE Size               4.00 MiB
      Total PE              524287
      Alloc PE / Size       0 / 0   
      Free  PE / Size       524287 / 2.00 TiB
      VG UUID               0Hev10-CtXt-ZwP3-LBUI-oXkN-Izod-N4UOsI
       
    [root@nas01 ~]# vgdisplay VG03_backup
      --- Volume group ---
      VG Name               VG03_backup
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               2.00 TiB
      PE Size               4.00 MiB
      Total PE              524287
      Alloc PE / Size       0 / 0   
      Free  PE / Size       524287 / 2.00 TiB
      VG UUID               FTP00f-vCcN-mmds-e4ma-hErv-1U1a-2p3aNr
       
    [root@nas01 ~]# vgdisplay VG04_tmp
      --- Volume group ---
      VG Name               VG04_tmp
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               2.00 TiB
      PE Size               4.00 MiB
      Total PE              524287
      Alloc PE / Size       0 / 0   
      Free  PE / Size       524287 / 2.00 TiB
      VG UUID               wASUgT-4h9H-SFr0-cde2-63yM-2Hae-T6RKeU
       
    [root@nas01 ~]# 
    
  3. 論理ドライブの定義
    さて、あと一息。
    100%FREEオプションを付けると、空き領域を全て割り当ててくれます。
    [root@nas01 ~]# lvcreate -n LV01_share -l 100%FREE VG01_share
      Logical volume "LV01_share" created
    [root@nas01 ~]# lvcreate -n LV02_home -l 100%FREE VG02_home
      Logical volume "LV02_home" created
    [root@nas01 ~]# lvcreate -n LV03_backup -l 100%FREE VG03_backup
      Logical volume "LV03_backup" created
    [root@nas01 ~]# lvcreate -n LV04_tmp -l 100%FREE VG04_tmp
      Logical volume "LV04_tmp" created
    [root@nas01 ~]# 
    

    出来上がったLVはこんな感じに。
    (/ファイルシステムもLVMで管理されてるので、今回作った分だけお見せします)

    [root@nas01 ~]# lvdisplay
      --- Logical volume ---
      LV Path                /dev/VG04_tmp/LV04_tmp
      LV Name                LV04_tmp
      VG Name                VG04_tmp
      LV UUID                bn1JtM-lX6T-WLcH-C1YA-6cHQ-z3xp-Te8ENr
      LV Write Access        read/write
      LV Creation host, time nas01.admkazuya.org, 2015-02-06 22:45:21 +0900
      LV Status              available
      # open                 0
      LV Size                2.00 TiB
      Current LE             524287
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:6
       
      --- Logical volume ---
      LV Path                /dev/VG03_backup/LV03_backup
      LV Name                LV03_backup
      VG Name                VG03_backup
      LV UUID                dQbIfE-v8t5-0PKQ-vHzM-mHzM-B0K6-BgEnCG
      LV Write Access        read/write
      LV Creation host, time nas01.admkazuya.org, 2015-02-06 22:45:01 +0900
      LV Status              available
      # open                 0
      LV Size                2.00 TiB
      Current LE             524287
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:5
       
      --- Logical volume ---
      LV Path                /dev/VG01_share/LV01_share
      LV Name                LV01_share
      VG Name                VG01_share
      LV UUID                fnQpIc-7KWD-CfyQ-0mF1-806c-LONQ-8u4wWl
      LV Write Access        read/write
      LV Creation host, time nas01.admkazuya.org, 2015-02-06 22:44:33 +0900
      LV Status              available
      # open                 0
      LV Size                2.00 TiB
      Current LE             524287
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:3
       
      --- Logical volume ---
      LV Path                /dev/VG02_home/LV02_home
      LV Name                LV02_home
      VG Name                VG02_home
      LV UUID                zrwcfT-qnBu-BPQJ-5HQd-mQZV-3igc-AjGvlX
      LV Write Access        read/write
      LV Creation host, time nas01.admkazuya.org, 2015-02-06 22:44:48 +0900
      LV Status              available
      # open                 0
      LV Size                2.00 TiB
      Current LE             524287
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:4
       
    [root@nas01 ~]# 
    

    ここまでできたら、lvmdiskscanコマンドでデバイスファイルを作成しましょう。
    オプション無しでコマンドぽんw

    [root@nas01 ~]# lvmdiskscan 
      /dev/centos/swap             [       7.82 GiB] 
      /dev/sda1                    [       2.00 TiB] LVM physical volume
      /dev/centos/root             [      50.00 GiB] 
      /dev/sda2                    [       2.00 TiB] LVM physical volume
      /dev/centos/home             [      53.48 GiB] 
      /dev/sda3                    [       2.00 TiB] LVM physical volume
      /dev/VG01_share/LV01_share   [       2.00 TiB] 
      /dev/sda4                    [       2.00 TiB] LVM physical volume
      /dev/VG02_home/LV02_home     [       2.00 TiB] 
      /dev/VG03_backup/LV03_backup [       2.00 TiB] 
      /dev/VG04_tmp/LV04_tmp       [       2.00 TiB] 
      /dev/sdb1                    [       1.82 TiB] 
      /dev/sdc1                    [     500.00 MiB] 
      /dev/sdc2                    [     111.30 GiB] LVM physical volume
      7 disks
      2 partitions
      0 LVM physical volume whole disks
      5 LVM physical volumes
    [root@nas01 ~]#

    さて・・・・その結果は?
    そう。こんな感じに/devの下にファイルが出来ます。

    [root@nas01 ~]# ls /dev/VG*
    /dev/VG01_share:
    LV01_share
    
    /dev/VG02_home:
    LV02_home
    
    /dev/VG03_backup:
    LV03_backup
    
    /dev/VG04_tmp:
    LV04_tmp
    [root@nas01 ~]# 
    
  4. ファイルシステムの作成
    最後にファイルシステムを作りましょう。
    [root@nas01 ~]# mkfs.xfs /dev/VG01_share/LV01_share 
    meta-data=/dev/VG01_share/LV01_share isize=256    agcount=4, agsize=134217472 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=0
    data     =                       bsize=4096   blocks=536869888, imaxpct=5
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
    log      =internal log           bsize=4096   blocks=262143, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@nas01 ~]# mkfs.xfs /dev/VG02_home/LV02_home 
    meta-data=/dev/VG02_home/LV02_home isize=256    agcount=4, agsize=134217472 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=0
    data     =                       bsize=4096   blocks=536869888, imaxpct=5
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
    log      =internal log           bsize=4096   blocks=262143, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@nas01 ~]# mkfs.xfs /dev/VG03_backup/LV03_backup 
    meta-data=/dev/VG03_backup/LV03_backup isize=256    agcount=4, agsize=134217472 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=0
    data     =                       bsize=4096   blocks=536869888, imaxpct=5
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
    log      =internal log           bsize=4096   blocks=262143, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@nas01 ~]# mkfs.xfs /dev/VG04_tmp/LV04_tmp 
    meta-data=/dev/VG04_tmp/LV04_tmp isize=256    agcount=4, agsize=134217472 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=0
    data     =                       bsize=4096   blocks=536869888, imaxpct=5
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
    log      =internal log           bsize=4096   blocks=262143, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@nas01 ~]# 
    
  5. では、出来上がったファイルシステムを手動でマウントしてみます。
    /etc/fstabには、ここで見えてる/dev/mapper/下にあるデバイスを書きます。
    (/もLVMなので、同じような書き方でOKです)
    [root@nas01 /]# mkdir external
    [root@nas01 /]# mkdir external/share
    [root@nas01 /]# mkdir external/home
    [root@nas01 /]# mkdir external/backup
    [root@nas01 /]# mkdir external/tmp
    [root@nas01 /]# mount /dev/VG01_share/LV01_share /external/share
    [root@nas01 /]# mount /dev/VG02_home/LV02_home /external/home
    [root@nas01 /]# mount /dev/VG03_backup/LV03_backup /external/backup
    [root@nas01 /]# mount /dev/VG04_tmp/LV04_tmp /external/tmp
    [root@nas01 /]# df -h
    ファイルシス                        サイズ  使用  残り 使用% マウント位置
    /dev/mapper/centos-root                50G  5.0G   46G   10% /
    devtmpfs                              7.8G     0  7.8G    0% /dev
    tmpfs                                 7.8G   80K  7.8G    1% /dev/shm
    tmpfs                                 7.8G  8.9M  7.8G    1% /run
    tmpfs                                 7.8G     0  7.8G    0% /sys/fs/cgroup
    /dev/mapper/centos-home                54G   33M   54G    1% /home
    /dev/sdc1                             497M  160M  337M   33% /boot
    /dev/mapper/VG01_share-LV01_share     2.0T   33M  2.0T    1% /external/share
    /dev/mapper/VG02_home-LV02_home       2.0T   33M  2.0T    1% /external/home
    /dev/mapper/VG03_backup-LV03_backup   2.0T   33M  2.0T    1% /external/backup
    /dev/mapper/VG04_tmp-LV04_tmp         2.0T   33M  2.0T    1% /external/tmp
    [root@nas01 /]# 
    
  6. 後は/etc/fstabをちゃんと書き換えておけば、作業終了!
    お疲れ様でした!
    念のためrebootして確認してみました。
    #
    # /etc/fstab
    # Created by anaconda on Tue Feb  3 13:18:15 2015
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    /dev/mapper/centos-root /                       xfs     defaults        1 1
    UUID=89a1226b-405f-4e4c-8fb5-96d154ef8af6 /boot                   xfs     defaults        1 2
    /dev/mapper/centos-home /home                   xfs     defaults        1 2
    /dev/mapper/centos-swap swap                    swap    defaults        0 0
    /dev/mapper/VG01_share-LV01_share	/external/share		xfs	defaults	0 3
    /dev/mapper/VG02_home-LV02_home		/external/home		xfs	defaults	0 4
    /dev/mapper/VG03_backup-LV03_backup	/external/backup	xfs	defaults	0 5
    /dev/mapper/VG04_tmp-LV04_tmp		/external/tmp		xfs	defaults	0 6
    [root@nas01 ~]# 
    

    ちなみにfstabの書式ですが、こんな感じです。

    列番号 意味 意味
    1 デバイスファイル マウントしたいファイルシステムを
    示すデバイスファイル名を記載します。
    2 マウント先ディレクトリ マウント先ディレクトリを指定します。
    (事前に作成が必要です)
    3 ファイルシステム mkfsした時のファイルシステムを指定します。
    最近のだと、色々選べますよ〜
    (ウチはxfsにしました)
    4 マウントオプション 普通はデフォルトでOKですが、オプションを追記したり出来ます。
    オプションを追記する時はカンマで区切ってください。
    ウチの場合、多分幾つかオプションを書き換えることになりそうです(SambaやらnfsやらNetatalk当たりが要求してきそうな気がします)
    5 dumpフラグ 0だとdumpコマンドでバックアップされません。
    1だとdumpコマンドでバックアップされます。
    6 fsckをかける順番 システムが必要と判断した時に、ココで指定された順番にfsckが走ります。
    (手動でfsck掛けた時もこの順番に実行されます)

    細かいオプションについては、グーグル先生に聞いてくださいw

%d人のブロガーが「いいね」をつけました。