HDDが一個しかないサーバで後からraid1を構築(その2...LVM編)
続きです。
前回までミラーを構築して/bootをコピーして起動できるところまで確認しました。
次はルート部分を移動させれば動くという算段です。
おさらいです。 図に書くと今はこんな感じです。
せっかく今、LVMで論理やマウントポイントを組んでいますのでそのあたりは一切変更せずやりたいと思います。
(grubが茨の道なので。。。今度、論理も変更のパターンもやります。。。)
RAIDにあるパーティションをPV(物理ボリューム)にする
図で見ると RAIDにあるパーテションのデバイス名は/dev/md127p5 ですね
root@mdtest:~# pvcreate /dev/md127p5
Physical volume "/dev/md127p5" successfully created
root@mdtest:~#
うん、これだけ。
作ったPVをVG(ボリュームグループ)に参加
参加するVG名は【mdtest-vg】です。
root@mdtest:~# vgextend mdtest-vg /dev/md127p5
Volume group "mdtest-vg" successfully extended
root@mdtest:~#
これも一行です。
これで図に書くと
こんな感じです。
次にデータが入ってるパーティションの中身を空っぽの方へ移動します。
root@mdtest:~# pvmove /dev/sda5 /dev/md127p5
Insufficient free space: 1978 extents needed, but only 1924 available
Unable to allocate mirror extents for pvmove0.
Failed to convert pvmove LV to mirrored
root@mdtest:~#
怒られた。。。空き領域がないと怒られてしまいました。
パーティション作るときに適当に数字を入れたのがここにきて問題になりました。
(だって同じ数字を入れても警告とか出るから。。。)
root@mdtest:~# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/mdtest--vg-root 7331536 1139876 5796192 17% /
none 4 0 4 0% /sys/fs/cgroup
udev 239388 4 239384 1% /dev
tmpfs 50152 500 49652 1% /run
none 5120 0 5120 0% /run/lock
none 250748 0 250748 0% /run/shm
none 102400 0 102400 0% /run/user
/dev/md127p1 240972 38487 190044 17% /boot
今、17%しか使ってないのでとりあえず(/)を半分にしてもいいような。。。
ということで一時的に(恒久的かも)ルートの領域を小さくしてみましょう。
mountしている状態では縮小はできませんので、ubuntu 14.04のCDを入れて修復で立ち上げ(俗に言うレスキューですね)
流れとしては
- ファイルシステムの縮小
- 論理グループの縮小
となります。 (容量増やすのはあとからいくらでもできます!)
~# e2fsck -f /dev/mapper/mdtest--vg-root
※e2fsckをまずやれって怒られるから
~# resize2fs /dev/mapper/mdtest--vg-root 4G
※ファイルシステムのサイズは4Gでいいよ
~# lvreduce -L 4G /dev/mapper/mdtest--vg-root
※論理ボリュームのサイズは4Gでいいよ
これで一度リブートして、立ち上げなおすと。。。
root@mdtest:~# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/mdtest--vg-root 3997504 1138364 2633044 31% /
none 4 0 4 0% /sys/fs/cgroup
udev 239388 4 239384 1% /dev
tmpfs 50152 488 49664 1% /run
none 5120 0 5120 0% /run/lock
none 250748 0 250748 0% /run/shm
none 102400 0 102400 0% /run/user
/dev/md127p1 240972 38487 190044 17% /boot
減ってますね!
root@mdtest:~# pvdisplay
--- Physical volume ---
PV Name /dev/sda5
VG Name mdtest-vg
PV Size 7.76 GiB / not usable 2.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 1986
Free PE 835
Allocated PE 1151
PV UUID PfeUP8-vYhu-d2Gq-7VDz-ijQ8-eV58-AFN2k6
--- Physical volume ---
PV Name /dev/md127p5
VG Name mdtest-vg
PV Size 7.52 GiB / not usable 1.94 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 1924
Free PE 1924
Allocated PE 0
PV UUID tLMocZ-3tjX-KrKC-0SdM-4yMw-HKvB-0ogjDa
lvを減らしたのでそれにあわせてpvの使用率も減りました。
PV Name /dev/sda5
Total PE 1986
Free PE 835
Allocated PE 1151
/dev/sda5は 1151PE使ってると
PV Name /dev/md127p5
Total PE 1924
Free PE 1924
Allocated PE 0
/ev/md127p5は 1924PE空いているのでこれでいけるはずです!
※PE → LVMで扱う大きさの単位
もう一度、pvを移動します
root@mdtest:~# pvmove /dev/sda5 /dev/md127p5
/dev/sda5: Moved: 0.0%
/dev/sda5: Moved: 7.2%
/dev/sda5: Moved: 14.4%
/dev/sda5: Moved: 21.5%
/dev/sda5: Moved: 29.5%
/dev/sda5: Moved: 51.2%
/dev/sda5: Moved: 88.1%
/dev/sda5: Moved: 100.0%
root@mdtest:~#
移動が出来ました!
pvdisplayで確認すると
root@mdtest:~# pvdisplay
--- Physical volume ---
PV Name /dev/sda5
VG Name mdtest-vg
PV Size 7.76 GiB / not usable 2.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 1986
Free PE 1986
Allocated PE 0
PV UUID PfeUP8-vYhu-d2Gq-7VDz-ijQ8-eV58-AFN2k6
--- Physical volume ---
PV Name /dev/md127p5
VG Name mdtest-vg
PV Size 7.52 GiB / not usable 1.94 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 1924
Free PE 773
Allocated PE 1151
PV UUID tLMocZ-3tjX-KrKC-0SdM-4yMw-HKvB-0ogjDa
PV Name /dev/sda5
Total PE 1986
Free PE 1986
Allocated PE 0
/dev/sda5の内容、全部消えました!
(正確には/dev/md127p5に移動ですが。。。)
あとは、/dev/sda5をLVMから外せば/dev/sda5が一切使われない状態になります。
VGから削除 → pvから削除の流れです。
root@mdtest:~# vgreduce mdtest-vg /dev/sda5
Removed "/dev/sda5" from volume group "mdtest-vg"
root@mdtest:~#
root@mdtest:~# pvremove /dev/sda5
Labels on physical volume "/dev/sda5" successfully wiped
root@mdtest:~#
root@mdtest:~# pvdisplay
--- Physical volume ---
PV Name /dev/md127p5
VG Name mdtest-vg
PV Size 7.52 GiB / not usable 1.94 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 1924
Free PE 773
Allocated PE 1151
PV UUID tLMocZ-3tjX-KrKC-0SdM-4yMw-HKvB-0ogjDa
pvから/dev/sda5が消えました!
図に書くとこんな感じです。
あとは/dev/sdaのパーテションを/dev/sdbにあわせて、/dev/md127に追加すればOKです。
partedを対話式じゃなく実行する方法を覚えました!w
root@mdtest:~# parted /dev/sda rm 1
root@mdtest:~# parted /dev/sda rm 2
※パーテションの削除(5は論理なので2を消すと一緒に消えます)
root@mdtest:~# parted /dev/sdb unit s print
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sdb: 16777216s
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 2048s 16777215s 16775168s primary boot, raid
※今動いてる/dev/sdbを確認。 これと同じ設定にすればいいはず!
root@mdtest:~# parted /dev/sda mkpart primary 2048s 16777215s
root@mdtest:~# parted /dev/sda set 1 boot on
root@mdtest:~# parted /dev/sda set 1 raid on
※同じ設定した!
root@mdtest:~# parted /dev/sda unit s print
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sda: 16777216s
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 2048s 16777215s 16775168s primary ext2 boot, raid
※確認! 同じになっています。
パーテション作成したら、RAIDに追加です。
root@mdtest:~# mdadm /dev/md127 --add /dev/sda1
mdadm: added /dev/sda1
root@mdtest:~#
root@mdtest:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : active raid1 sda1[2] sdb1[0]
8383424 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 2.4% (209472/8383424) finish=5.2min speed=26184K/sec
unused devices: <none>
root@mdtest:~#
再同期が始まりました。
これで再同期処理が終われば、RAID1のミラーリングの完成です。
ただし、ここで再起動をかけると立ち上がらなくなりますので、おまじないが必要です。
root@mdtest:~# mdadm --detail --scan >> /etc/mdadm/mdadm.conf
root@mdtest:~# echo 'raid1' >> /etc/initramfs-tools/modules
root@mdtest:~# update-initramfs -k all -u
update-initramfs: Generating /boot/initrd.img-3.16.0-30-generic
※raid1モジュールを確実にロードする設定
root@mdtest:~# grub-install /dev/sda
root@mdtest:~# grub-install /dev/sdb
root@mdtest:~# update-grub
root@mdtest:~#
ここまできて失敗したら嫌なので、再度 /dev/sda /dev/sdbにgrubの設定を流し込み
最終的にこんな感じです。
LVMを使うことで論理グループより上のレイヤーを変更する必要がないので便利です!
うん LVMってステキ!!
Author And Source
この問題について(HDDが一個しかないサーバで後からraid1を構築(その2...LVM編)), 我々は、より多くの情報をここで見つけました https://qiita.com/miyumiyu/items/e0afe1b66ddaa73d3fc1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .