LIVA-Xのパーティションは「ソフトウェア構成」に記載した通り、非LVMで構成しました。
USB接続の外部HDDのファイルシステムはbtrfsでRAIDを構成しました。
ファイルシステムにbtrfsを使用したかったのが理由です。
当時、btrfsはLVMに対応していないためLVMにはできませんでした。
今後、CentOSが推奨するファイルシステムは少なくともbtrfsにはならないであろうことが判明したので思い切ってLVM化することにしました。
当初2台接続していた外部HDDケースですが、1台はWindows 10に接続してユーザデータ用に使用するために取り除きました。
今回は、/bootと/boot/efiを除くすべてをLVMに移行することにしました。
なお当環境はUEFI+GPTです。
パーティションは以下の通りです。
# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Jul 15 21:17:31 2017
#
# 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
#
UUID=ba71a324-7dad-43ec-84f4-965cd89eea8e / xfs defaults 0 0
UUID=7fcac5e9-e97c-4767-a6e1-a09902aa0453 /boot xfs defaults 0 0
UUID=7D97-F900 /boot/efi vfat umask=0077,shortname=winnt 0 0
UUID=e16ad6b1-825e-45a0-8927-e624adca3a56 swap swap defaults 0 0
UUID=c25a9864-ae95-4a49-b696-dea32bb1de9b /home xfs defaults 0 0
UUID=8d8b20d6-fff1-4429-9f96-d279884049a2 /backup btrfs noatime,autodefrag,compress-force=lzo,space_cache 0 0
UUID=c3291542-f3cc-4ccd-87e7-4ad5a5a2c578 /var/lib/mysql btrfs noatime,nodatacow,autodefrag,space_cache 0 0
データの移動
外付けHDDに保存されているデータを退避させるため、RHDMアダプターにiVDR-SカセットHDD1TBを装着して利用しました。
使用量の少ないパーティションはそのままルートパーティションに含めました。
なおデータの移動にはtarコマンドを使用しました。
例)/mntにマウントしたドライブに/homeの内容をコピー
# cd /home
# tar cvf . - | (cd /mnt | tar xvf -)
/varと/var/lib/mysqlはルートパーティションへ同じようにコピーしました。
ディスクドライブの初期化
外付けHDDの対象のディスクドライブは5台あります。
それぞれデバイス名は/dev/sd[a,b,c,d,e]です。
※USB接続のHDDは起動順序でデバイス名が変わりますので/var/log/messagesで確認してください。
まず、ファイルシステムbtrfsでRAIDを構成していたため、念のため、以下を実施しました。
# mount /dev/sdd /mnt
# btrfs device delete /dev/sdd /mnt
# btrfs device delete /dev/sde /mnt
# umount /mnt
# wipefs -o 0x10040 /dev/sd[de]
# fdisk /dev/sdd
# fdisk /dev/sde
# mount /dev/sda /mnt
# btrfs device delete /dev/sda /mnt
# btrfs device delete /dev/sdb /mnt
# btrfs device delete /dev/sdc /mnt
# umount /mnt
# wipefs -o 0x10040 /dev/sd[abc]
# fdisk /dev/sda
# fdisk /dev/sdb
# fdisk /dev/sdc
コマンドはGPT対応バージョンのfdiskかgdiskを使用すればよいと思います。
fdiskでシステムIDをLinux LVM(8e)に設定しています。
LVMの作成
PVの作成
# pvcraete /dev/sda1
# pvcraete /dev/sdb1
# pvcraete /dev/sdc1
# pvcraete /dev/sdd1
# pvcraete /dev/sde1
VGの作成
以下の例ではVG名はLIVAX(任意)にしています。
# vgcreate LIVAX /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
LVの作成(RAID1)
LVをミラーで作成します。
# lvcreate --type raid1 -m 1 -L 10G -n system-root LIVAX
# lvcreate --type raid1 -m 1 -L 10G -n system-usr LIVAX
# lvcreate --type raid1 -m 1 -L 10G -n system-var LIVAX
# lvcreate --type raid1 -m 1 -L 20G -n system-mysql LIVAX
# lvcreate --type raid1 -m 1 -L 1T -n system-home LIVAX
※/(ルート),/usr,/var,/var/mysql,/homeのパーティションを作成しました。
ファイルシステムの作成(フォーマット)
XFSでフォーマットしました。
# mkfs -t xfs /dev/LIVAX/system-var
# mkfs -t xfs /dev/LIVAX/system-usr
# mkfs -t xfs /dev/LIVAX/system-root
# mkfs -t xfs /dev/LIVAX/system-mysql
# mkfs -t xfs /dev/LIVAX/system-home
新環境へデータの複製
/mntにそれぞれのLVをマウントしてtarコマンドにてデータを複製しました。
以下は/homeの例です。
# mount /dev/LIVAX/system-home /mnt
# cd /home
# tar cvf . - | (cd /mnt;tar xvf -)
# umount /mnt
※/(ルート)の場合は、/usrや/varや/homeやデバイスファイルなどをコピーしないように除外リストを使用しました。
新環境をマウント
/mnt以下に新環境をすべてマウントします。
# mount /dev/LIVAX/system-root /mnt
# cd /mnt
# mkdir -p home usr var
# mount /dev/LIVAX/system-usr usr
# mount /dev/LIVAX/system-var var
# mount /dev/LIVAX/system-mysql var/lib/mysql
# mount /dev/LIVAX/system-home home
# mount /dev/mmcblk0p2 boot
# mount /dev/mmcblk0p2 boot/efi
# mount -t proc proc proc
# mount -t sysfs sys sys
# mount -o bind /dev dev
# mount -t devpts pts dev/pts
自動マウントの設定
新環境の/etc/fstab(/mnt/etc/fstab)の内容をLVMのディスクパーティションをマウントするように変更します。
USBデバイスが複数あるとデバイス名が起動時に変更になることがあるので今回はUUIDを使用することにしました。
UUIDの取得
# blkid
/mnt/etc/fstabの変更
※編集するファイルのパスに注意してください
#
# /etc/fstab
# Created by anaconda on Sat Jul 15 21:17:31 2017
#
# 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
#
#UUID=ba71a324-7dad-43ec-84f4-965cd89eea8e / xfs defaults 0 0
UUID=49d00818-8ab7-4162-9818-43b79135175c / xfs defaults 0 0
UUID=7fcac5e9-e97c-4767-a6e1-a09902aa0453 /boot xfs defaults 0 0
UUID=7D97-F900 /boot/efi vfat umask=0077,shortname=winnt 0 0
UUID=e16ad6b1-825e-45a0-8927-e624adca3a56 swap swap defaults 0 0
#UUID=3b7735e7-61aa-4781-a271-c3df5a2eccdc /home xfs defaults 0 0
UUID=bbd8789e-379a-4034-ae4e-452c9156b9b9 /usr xfs defaults 0 0
UUID=074c1b74-976c-4333-a7b4-98b78d3daad1 /var xfs defaults 0 0
UUID=5b535b7b-bc20-434c-a132-e019293c3245 /var/lib/mysql xfs defaults 0 0
UUID=9237bcd9-ea64-47db-bcd1-1f83bb6f8953 /home xfs defaults 0 0
ルートディレクトリの変更
新環境がルートになるようにchrootコマンドで変更
# chroot /mnt
GRUB2の更新
# grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
初期RAMディスクイメージの再作成
# cd boot
# mv initramfs-3.10.0-693.21.1.el7.x86_64.img initramfs-3.10.0-693.21.1.el7.x86_64.img.old
# dracut initramfs-3.10.0-693.21.1.el7.x86_64.img 3.10.0-693.21.1.el7.x86_64
chrootから抜ける
# exit
すべてアンマウント
# umount dev/pts
# umount dev
# umount sys
# umount proc
# umount boot/efi
# umount boot
# umount home
# umount var/lib/mysql
# umount var
# umount usr
# umount /mnt
システムの再起動
# shutdown -r now
LVMのパーティション
# df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/LIVAX-system--root 10475520 1320256 9155264 13% /
devtmpfs 1773824 0 1773824 0% /dev
tmpfs 1785528 0 1785528 0% /dev/shm
tmpfs 1785528 53920 1731608 4% /run
tmpfs 1785528 0 1785528 0% /sys/fs/cgroup
/dev/mapper/LIVAX-system--usr 10475520 4059452 6416068 39% /usr
/dev/mmcblk0p2 1038336 250036 788300 25% /boot
/dev/mmcblk0p1 204580 9968 194612 5% /boot/efi
/dev/mapper/LIVAX-system--var 10475520 2323672 8151848 23% /var
/dev/mapper/LIVAX-system--home 1073217536 543722072 529495464 51% /home
/dev/mapper/LIVAX-system--mysql 20961280 1774052 19187228 9% /var/lib/mysql
tmpfs 357108 0 357108 0% /run/user/1000
以上で完了です。
[common_content id=”13589″]