以前の記事で折角ハードウェアRAIDカードを入れてRAIDアレイを作ったので
次はファイルシステムなわけですが、折角なのでLVM配下にします。
LinuxのLVMでは、こんな感じで作っていきます。
作成はちょっと手間ですが、一手間かけると後で色々楽出来るので頑張りましょうw
- 物理ボリューム(Physical Volume:PV)の作成
我が家の場合、ハードウェアRAIDカード上に、出来たドライブを4つのパーテーションに区切って使っています。
こいつをPVとして割り当てます。 - ボリュームグループ(Volume Group:VG)の作成
出来上がったPVを一括りにグループとして定義します。
複数のPVを1つのVGにまとめてソフトウェアRAIDなんかも出来たりします。 - 論理ボリューム(Logical Volume:LV)の作成
出来上がったVGをOSに見せるためにLVを定義します。
1つのVGを複数のLVに分割することも出来ます(むしろその為にLVを使うわけですが) - ファイルシステムの作成
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 ~]#
- 物理ディスクの定義
先ずはここから。[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 ~]#
- ボリュームグループの定義
今回はハードウェア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 ~]#
- 論理ドライブの定義
さて、あと一息。
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 ~]#
- ファイルシステムの作成
最後にファイルシステムを作りましょう。[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 ~]#
- では、出来上がったファイルシステムを手動でマウントしてみます。
/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 /]#
- 後は/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
コメント