Halo guys, Ridwan here..
Come again with new notes update!
Pada tulisan ini aku mau bahas terkait "Rescue Disk" pada Cloud Environment
Rescue disk ini biasaya digunakan untuk melakukan boot ke suatu Operating System yang mengalami kendala/error di mana kita tidak dapat mengakses ke OS tersebut, seperti :
- Can't Booting into OS
- Lost Grub Boot
- File System / Partition Error
- Troubleshooting kernel atau driver (fstab(disk) / udev(Hardware) / lainnya.
- Reset Root Password
Ada beberapa Rescue Disk Tools, yang dapat kalian coba :
- Hiren’s BootCD (Windows Recovery)
- SystemRescueCd (Linux Recovery)
- GParted Live (Linux Recovery)
- UltimateBootCD (Linux Recovery) Dan banyak lagi..
Jika di Environment non-cloud / BareMetal Server, kita hanya perlu boot Rescue Disk via ISO/CD-ROM pada Server yang terkendala.
Tapi bagaimana kalau di "Cloud Environment" ?
Apakah ada options untuk boot via ISO pada instance, atau apakah ada cara untuk mengatur "boot order" seperti pada baremetal ?
Pada beberapa public cloud, solusi yang di-tawarkan adalah membuat instance rescue,
kemudian attach disk dari VM yang bermasalah tersebut ke dalam instances Rescue.
- Alibaba ACS-ECS-RescueUnreachableInstance-Linux
https://www.alibabacloud.com/help/en/oos/use-cases/repair-the-damaged-linux-system-disk-of-an-ecs-instance-by-using-the-self-rescue-solution - AWS Rescue EC2
https://docs.aws.amazon.com/id_id/AWSEC2/latest/UserGuide/Linux-Server-EC2Rescue.html - GCP Rescue VM
https://cloud.google.com/compute/docs/troubleshooting/rescue-vm
Tetapi, Pada Openstack Environment kita melakukannya dengan cara yang berbeda !
kita dapat melakukan rescue, tampa perlu create instance baru.
Refrensi :
https://docs.openstack.org/nova/latest/user/rescue.html#stable-device-instance-rescue
https://access.redhat.com/solutions/7071497
Penasaran bagaimana caranya ?
Langsung saja kita coba !
1. Create Rescue Images
Pada test ini, aku menggunakan "SystemRescueCD" karena tools nya sangat lengkap dibandingkan tools rescue lainnya~
Download & upload ke openstack menggunakan command berikut :
$ openstack image create --progress --disk-format iso --container-format bare --public --file systemrescue-12.01-amd64.iso SystemRescue-12
Tunggu hingga status berhasil terupload dengan sempurna, seperti gambar berikut :
Sesuai dokumentasi, add metadata berikut :
$ openstack image set 8d090ba9-1015-46e2-92ff-040ed01f1c18 --property hw_rescue_device=disk
$ openstack image set 8d090ba9-1015-46e2-92ff-040ed01f1c18 --property hw_rescue_bus=virtio
"This mode keeps all devices both local and remote attached in their original order to the instance during the rescue while booting from the provided rescue image.This mode is enabled and controlled by the presence of hw_rescue_device or hw_rescue_bus image properties on the provided rescue image. As their names suggest these properties control the rescue device type (cdrom, disk or floppy) and bus type (scsi, virtio, ide, or usb) used when attaching the rescue image to the instance."
Simplenya, Dengan metadata berikut devices naming/mapping tidak akan berubah saat di boot via rescue images.
2. Instances
Pada test ini, kita memiliki instances sesuai gambar berikut :
Pada test case ini, akan kita coba akses instance tersebut dengan chroot.
Kita perlu menyiapkan ID dari
- Instances = de594fd5-224a-4c07-b263-dbdab4d7842f
- Rescue Images = 8d090ba9-1015-46e2-92ff-040ed01f1c18
Kemdudian, jalankan command berikut untuk langsung boot instances ke rescue disk
$ openstack server rescue --image 8d090ba9-1015-46e2-92ff-040ed01f1c18 de594fd5-224a-4c07-b263-dbdab4d7842f
Command :
$ openstack server rescue --image [Image-ID] [Instances-ID]
Jika berhasil, tampilan pada "status" akan menjadi "Rescue"
Dan pada bagian menu console, akan tampil boot dari rescue images.
Kemudian jika sudah selesai urusan dengan "rescue disk" kita perlu mengembalikan status ke "active" kembali, dan boot kembali ke virtual disk aslinya (un-rescue).
$ openstack server unrescue de594fd5-224a-4c07-b263-dbdab4d7842f
Command :
$ openstack server unrescue [Instances-ID]
3 . Linux Rescue in Action
Setelah berhasil boot menggunakan rescue images, banyak hal yang dapat kalian lakukan.
Contohnya seperti chroot,
details : https://www.lenovo.com/us/en/glossary/what-is-chroot/
Pada console sysrescue, terlihat dari command "lsblk -f"
bahwa root disk/filesystem dari "VM Error" berada pada "/dev/vda1" dan menggunakan FSTYPE ext3
kemudian "/dev/vda1" kita jadikan target untuk chroot, dengan cara berikut :
Lakukan mount pada partisi tersebut :
mount -t ext3 /dev/vda1 /mnt
Mount the directory filesystem :
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev/ /mnt/dev
let's chroot ke directory /mnt :
## For Bash
chroot /mnt /bin/bash
## For SH
chroot /mnt /bin/sh
Now.. you're the root !
Setelah mendapatkan akses root dari "VM Error", banyak hal yang dapat dilakukan
- re-install grub
- change password
- edit config
- install packages
lengkap nya mungkin ini bisa menjadi refrensi :
https://www.ionos.com/help/server-cloud-infrastructure/dedicated-server-for-servers-purchased-before-102818/rescue-and-recovery/working-with-the-linux-rescue-system/
Ok, Setelah selesai dengan urusan "rescue" jangan lupa lakukan perintah "unrescue"
$ openstack server unrescue de594fd5-224a-4c07-b263-dbdab4d7842f
Thank you sudah membaca tulisan ini, Semoga bermanfaat !
Best Regards
Rdw