これまでのあらすじ #
おうち K8s の証明書が切れちゃったので入れ替えをしていたら更新に失敗して control plane に接続できなくなってしまった!
試行錯誤していたらどうしようもなくなったので大事なデータだけ復旧してクラスターを作り直そう!
復旧の記録(復旧に手をつけるまで半年放置しています) #
open-iscsiのインストール #
ubuntu に open-iscsi を入れる
sudo apt update
sudo apt install open-iscsi
iSCSI LUNの発見 #
discovery できた
$ sudo iscsiadm -m discoverydb -t st -p 192.168.2.1 --discover
192.168.2.1:3260,1 iqn.2000-01.com.synology:*****.pvc-7f1f9439-d1f5-4826-89e5-5eebbbbe4daf
192.168.2.1:3260,1 iqn.2000-01.com.synology:*****.pvc-2182b46c-5f40-4302-aff1-bfd12aa212ee
192.168.2.1:3260,1 iqn.2000-01.com.synology:*****.pvc-4ae52490-ffb9-4320-ac51-f98ab08c733a
192.168.2.1:3260,1 iqn.2000-01.com.synology:*****.pvc-3fe54bf4-9c71-47a4-a24c-8b626ba3a59a
邪魔なものは消しておく
$ sudo iscsiadm -m node -T iqn.2000-01.com.synology:*****.pvc-7f1f9439-d1f5-4826-89e5-5eebbbbe4daf --op=delete
$ sudo iscsiadm -m node -T iqn.2000-01.com.synology:*****.pvc-4ae52490-ffb9-4320-ac51-f98ab08c733a --op=delete
$ sudo iscsiadm -m node -T iqn.2000-01.com.synology:*****.pvc-4ae52490-ffb9-4320-ac51-f98ab08c733a --op=delete
接続トラブルシューティング #
接続できんが〜〜〜〜〜?
$ sudo iscsiadm -m node -T iqn.2000-01.com.synology:*****.pvc-2182b46c-5f40-4302-aff1-bfd12aa212ee -l
Logging in to [iface: default, target: iqn.2000-01.com.synology:*****.pvc-2182b46c-5f40-4302-aff1-bfd12aa212ee, portal: 192.168.2.1,3260]
iscsiadm: Could not login to [iface: default, target: iqn.2000-01.com.synology:*****.pvc-2182b46c-5f40-4302-aff1-bfd12aa212ee, portal: 192.168.2.1,3260].
iscsiadm: initiator reported error (19 - encountered non-retryable iSCSI login failure)
iscsiadm: Could not log into all portals
K8s の残骸が悪さをしているかもしれないので一旦全てのノードをシャットダウン
Logging in to [iface: default, target: iqn.2000-01.com.synology:*****.pvc-2182b46c-5f40-4302-aff1-bfd12aa212ee, portal: 192.168.2.1,3260]
Login to [iface: default, target: iqn.2000-01.com.synology:*****.pvc-2182b46c-5f40-4302-aff1-bfd12aa212ee, portal: 192.168.2.1,3260] successful.
予想通りだった!
データ回収 #
ではマウントして回収する
$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 49.3M 1 loop /snap/snapd/24792
loop1 7:1 0 4K 1 loop /snap/bare/5
loop3 7:3 0 576K 1 loop /snap/snapd-desktop-integration/315
loop4 7:4 0 245.3M 1 loop /snap/firefox/6495
loop5 7:5 0 10.7M 1 loop /snap/firmware-updater/127
loop6 7:6 0 11.1M 1 loop /snap/firmware-updater/167
loop7 7:7 0 505.1M 1 loop /snap/gnome-42-2204/176
loop8 7:8 0 516M 1 loop /snap/gnome-42-2204/202
loop9 7:9 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop10 7:10 0 10.8M 1 loop /snap/snap-store/1248
loop11 7:11 0 10.8M 1 loop /snap/snap-store/1270
loop12 7:12 0 245.3M 1 loop /snap/firefox/6436
loop13 7:13 0 50.9M 1 loop
loop14 7:14 0 73.9M 1 loop /snap/core22/2045
loop15 7:15 0 568K 1 loop /snap/snapd-desktop-integration/253
loop16 7:16 0 73.9M 1 loop /snap/core22/2010
loop17 7:17 0 50.9M 1 loop /snap/snapd/24718
sda 8:0 0 10G 0 disk
nvme0n1 259:0 0 931.5G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot/efi
└─nvme0n1p2 259:2 0 930.5G 0 part /
10GB の LUN なので sda が対象ということがわかる。
ファイルシステムを確認
$ sudo blkid /dev/sda
/dev/sda: UUID="44e0bd39-56c8-488c-ba78-d92d78a2ab16" UUID_SUB="f30fff50-a274-4ad5-b47d-f0890339d421" BLOCK_SIZE="4096" TYPE="btrfs"
btrfs って読めたっけ???
読めそう。マウントする
$ sudo mkdir -p /mnt/iscsi
$ sudo mount -t btrfs /dev/sda /mnt/iscsi
$ tree -L 2 /mnt/iscsi
/mnt/iscsi
└── pgroot
├── data
└── pg_log
読めてる!
全部回収する、今回は 5GB とちょっとなので
$ mkdir pg_backup
$ sudo cp -a /mnt/iscsi/pgroot/data pg_backup
$ sudo cp -a /mnt/iscsi/pgroot/pg_log pg_backup
権限調整とクリーンアップ #
一旦権限を自分に変更しておく
$ ls -la pg_backup
合計 16
drwxrwxr-x 4 sun-yryr sun-yryr 4096 7月 23 01:46 .
drwxr-xr-x 7 sun-yryr sun-yryr 4096 7月 23 01:44 ..
drwx------ 19 messagebus uuidd 4096 7月 22 09:00 data
drwxr-xr-x 2 messagebus uuidd 4096 4月 4 09:00 pg_log
$ sudo chown -R sun-yryr:sun-yryr pg_backup
$ ls -la pg_backup
合計 16
drwxrwxr-x 4 sun-yryr sun-yryr 4096 7月 23 01:46 .
drwxr-xr-x 7 sun-yryr sun-yryr 4096 7月 23 01:44 ..
drwx------ 19 sun-yryr sun-yryr 4096 7月 22 09:00 data
drwxr-xr-x 2 sun-yryr sun-yryr 4096 4月 4 09:00 pg_log
OK!マウントを解除して iSCSI もログアウトしておく
$ sudo umount /mnt/iscsi
$ sudo iscsiadm -m node -T iqn.2000-01.com.synology:*****.pvc-2182b46c-5f40-4302-aff1-bfd12aa212ee -p 192.168.2.1 --logout
Logging out of session [sid: 3, target: iqn.2000-01.com.synology:*****.pvc-2182b46c-5f40-4302-aff1-bfd12aa212ee, portal: 192.168.2.1,3260]
Logout of [sid: 3, target: iqn.2000-01.com.synology:*****.pvc-2182b46c-5f40-4302-aff1-bfd12aa212ee, portal: 192.168.2.1,3260] successful.
まとめ #
一旦ここまで。次はローカルでこのデータから DB を復元して dump を取得する(最終的に復活させた K8s 上の DB に入れるので、dump にしておくと取り回しが良い)
続きはこちら
PostgreSQLダンプ作成編【おうちK8s復旧シリーズ #2】(準備中)