1020 文字
5 分
LVMのファイルシステムをいきなりlvreduceして壊しかけた
概要
- online(mount中)のlogical volumeのサイズをいきなり変更したら、ファイルシステムがバグってしまってOSがおかしくなって起動しなくなりました。
- そもそもumountしろという感じですが、EC2のEBSはオンラインで容量が拡張できるから逆に縮小もできると思い、実行してみたけど順番が違かった。。。
- raidのディスク構成を変更したかったので、830GB位あるlogical volumeを300GBに変更したかったのです。
問題のコマンドはこちら
↓オンライン中に実行してはいけません。
root@dell /h/matsu# lvreduce -L 300G /dev/mapper/dell--vg-root WARNING: Reducing active and open logical volume to 300.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce dell-vg/root? [y/n]: y Size of logical volume dell-vg/root changed from 834.44 GiB (213617 extents) to 300.00 GiB (76800 extents). /etc/lvm/backup/dell-vg.tmp: fsync failed: Input/output error /etc/lvm/backup/dell-vg.tmp: fclose failed: Read-only file system Backup of volume group dell-vg metadata failed. Logical volume dell-vg/root successfully resized.THIS MAY DESTROY YOUR DATA (filesystem etc.) って書いてあるし。。。。コマンド実行中にもIOエラーが表示されちゃってますね。やばいです。
lvmの構成情報は/etc/lvm/backup以下にバックアップされるのですが、/etc/にすでに書き込めなくなっちゃっているようです。その後はshellがおかしくなり、コマンドが徐々に打てなくなってきたのでrebootしました。
もちろん、rebootしても正常に起動できないのでinitramfsが起動します。fsckを実行しても訂正されることはありません。fsckでチェックする領域は別のようです。
本来の手順
こちらの書き込みでは、以下のように説明されています。
- unmountするか、オンラインでやるなら最初にresize2fs(使っているファイルシステムによってコマンドは異なる)などでファイルシステムのサイズを変更する。
- logical volumeを縮小する
- phisical volumeを縮小する
上記の記事から、認知していないといけないレイヤーの整理をいかに記載します。
- ファイルシステム
- Logical Volume
- Volume Group
- Phisical Volume
- Partition
今回は、ファイルシステム上では変更前の800GBですが、Logical Volumeがいきなり300GBになったのでおかしくなりました。
復旧へ
- Ubuntuのboot diskをUSBメモリに焼いて起動します。
- 端末を立ち上げて、コマンドを打ちます。
ということで、Logical Volumeを、空き領域に対して全部使うように変更します。
root@ubuntu:/home/ubuntu# lvscan ACTIVE '/dev/data-vg/data' [<3.64 TiB] inherit ACTIVE '/dev/dell-vg/root' [534.45 GiB] inherit ACTIVE '/dev/dell-vg/swap_1' [976.00 MiB] inheritroot@ubuntu:/home/ubuntu# lvresize -l +100%FREE /dev/mapper/dell--vg-root Size of logical volume dell-vg/root changed from 534.45 GiB (136820 extents) to 834.45 GiB (213620 extents). Logical volume dell-vg/root successfully resized.root@ubuntu:/home/ubuntu# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert data data-vg -wi-a----- <3.64t root dell-vg -wi-a----- 834.45g swap_1 dell-vg -wi-a----- 976.00mfsckしてrebootします。
root@ubuntu:/home/ubuntu# fsck /dev/mapper/dell--vg-rootfsck from util-linux 2.34e2fsck 1.45.5 (07-Jan-2020)Clearing orphaned iノード 46935860 (uid=1000, gid=1000, mode=0100644, size=400721)Clearing orphaned iノード 46932279 (uid=1000, gid=1000, mode=0100644, size=400542)Clearing orphaned iノード 51380233 (uid=115, gid=125, mode=0100600, size=0)Clearing orphaned iノード 51381297 (uid=115, gid=125, mode=0100600, size=0)Clearing orphaned iノード 51381296 (uid=115, gid=125, mode=0100600, size=0)Clearing orphaned iノード 51380238 (uid=115, gid=125, mode=0100600, size=4563)Clearing orphaned iノード 17703601 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 17703596 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 17703594 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 17703593 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 17312060 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 17312056 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 17312055 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 17312054 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 15213286 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 15213285 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 15213284 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 15213283 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 12459447 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 12459443 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 12459439 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 12459438 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 18095575 (uid=0, gid=0, mode=0100644, size=776264)Clearing orphaned iノード 12194905 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 12194904 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 12194903 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 12194895 (uid=999, gid=999, mode=0100600, size=0)Clearing orphaned iノード 2883690 (uid=104, gid=4, mode=0100640, size=1642249)Clearing orphaned iノード 2884265 (uid=0, gid=0, mode=0100644, size=339)Clearing orphaned iノード 51380226 (uid=0, gid=0, mode=0100666, size=0)Setting free iノードs count to 52970465 (was 53008249)Setting free blocks count to 172967006 (was 173674078)/dev/mapper/dell--vg-root: clean, 1719327/54689792 files, 45776802/218743808 blocksroot@ubuntu:/home/ubuntu# rebootエラーがたくさんありますが、だいたい良い感じに直ったようです。

まとめ
- lvresizeでもとに戻して、ちゃんと起動しました。よかった。。。
LVMのファイルシステムをいきなりlvreduceして壊しかけた
https://blog.teraren.com/posts/lvm-lvreduce/