Cara Cloning Disk File System Linux

Cara Cloning Disk File System Linux

Cloning disk atau proses mereplikasikan data didalam suatu disk baik itu HDD, SSD, SAS atau perangkat storage lainnya terhadap suatu alternatif disk yang lain atau alternatif perangkat storage lainnya yang baru, guna menghindari data yang rusak atau bahkan hilang yang diakibatkan disk lama yang failure. Proses cloning disk umumnya dilakukan atas kondisi disk lama yang kinerjanya sudah tidak optimal, proses I/O read/write yang sudah lambat, atau bahkan terindikasi failure dan harus segera diproses pergantian disk lama dengan disk yang baru serta perpindahan datanya antar disk yang lama terhadap disk alternatif lain yang baru tersebut.

Tahapan dan proses cloning disk memiliki beberapa alternatif, bisa melalui aplikasi clonezila atau aplikasi lainnya, menggunakan dd clone atau lainnya. Namun dalam artikel ini akan didokumentasikan tahapan dan proses cloning disk menggunakan dd dan rsync. Proses menggunakan dd clone yaitu dengan menggunakan perintah (contoh kasus) dd if=/dev/sda of=/dev/sdb dengan sda merupakan hardisk lama yang aktif dan yang ingin di clonekan dengan hardisk sdb yang baru tersebut sebetulnya sudah dapat berjalan prosesnya, bahkan merupakan proses yang sangat sederhana dan sangat efisien dalam penggunaan perintahnya, namun menurut penulis sangat tidak efektif. Kenapa? Pertama, karena menghindari lamanya proses cloning dan menghindari ketidak sempurnaan data dari hasilnya yang diakibatkan kinerja I/O atau baca tulis hardisk yang sudah tidak optimal atau lambat. Bahkan jika gagal, maka akan diulang dari nol karena tidak akan diketahui data yang kurang dari lokasi partisi yang keberapa dari hardisk lama yang ingin di ganti tersebut. Kedua, guna mengantisipasi kondisi hardisk baru sebagai pengganti yang memiliki space kurang dari hardisk lama yang hendak diganti. Misal hardisk lama memiliki space 500 GB dan ingin diganti atau di clonekan terhadap hardisk baru yang hanya memiliki space 320 GB. Hal tersebut tentu sangat riskan terhadap existing data dari hardisk yang lama yang hendak di clonekan terhadap hardisk baru. Namun apabila hardisk baru memiliki space yang lebih besar dari hardisk yang lama atau lebih besar sama dengan 500GB seperti contoh kasus yang disampaikan sebelumnya tentu tidak perlu dikhawatirkan terkait penggunaan space.

Disk Layout

Sebelum melanjutkan tahapan dan prosesnya, berikut gambar tabel layout hardisk baik sda sebagai existing yang hendak diganti atau diclone beserta dengan partisinya terhadap hardisk sdb sebagai target disknya.

Untuk hardisk existing atau hardisk lama (sda) atau hardisk yang hendak diganti dengan melakukan cloning datanya terhadap hardisk target atau hardisk baru (sdb). Pada dokumentasi ini menggunakan hardisk yang memiliki space sama besar dengan kondisi partisinya seperti tabel tersebut diatas. Karena pada dokumentasi artikel ini menggunakan space yang sama besar, maka hardisk target akan memiliki partisi dan space yang sama. Khusus untuk partisi “/boot” dan “/” karena merupakan partisi dengan disk usage paling sedikit diantara partisi lain maka akan diproses menggunakan perintah dd clone.

Gambar data layout tabel tersebut merupakan rangkuman dari kondisi hardisk lama atau sda (existing) sebagai berikut yang hendak di clone kan terhadap hardisk baru atau sdb (target) guna memudahkan penulis untuk penyampaian tahapan dan prosesnya melalui dokumentasi artikel ini.

Kondisi File System Hardisk SDA

Kondisi Partisi Hardisk SDA

Kondisi Partisi Hardisk SDB

Dari hasil pengecekan fdisk -l tersebut, dapat diketahui kondisi partisi hardisk sdb tersebut masih kosong atau belum dibuat partisi. Sehingga nanti perlu disipkan partisinya terlebih dahulu sesuai dengan persiapan dari Disk Layout.

Serial Number Hardisk

Penting untuk dicatat juga untuk serial number setiap hardisk agar dapat digunakan untuk membedakan mana serial number hardisk yang lama yang hendak diganti dengan serial number hardisk baru, mengingat apabila hardisk yang hendak diproses cloningnya tertukar, maka resikonya data akan terhapus (kosong). Penulis sangat menghimbau agar teliti dalam melakukan pengamatan dan penerapan merujuk dari dokumentasi artikel ini. Berikut perintah hdparm untuk pengecekan serial number hardisk. Serial number dibawah juga sudah dicatat oleh penulis di dalam persiapan Disk Layout.

Partisi Hardisk SDB

Sebelum melakukan proses perpindahan data atau cloning maka perlu dipersiapkan terlebih dahulu partisi dari hardisk sdb sesuai dengan persiapan Disk Layout sebelumnya mengingat kondisi hardisk sdb masih belum memiliki partisinya.
Dalam tahapan ini, untuk prosesnya penulis detailkan menggunakan perintah fdisk sebagai berikut.

Setelah proses partisi selesai maka lakukan proses pengecekan kembali untuk memastikan persiapan partisi hardisk sdb telah sesuai dengan hardisk sda.

Dari hasil pengecekan tersebut untuk partisi hardisk sda dan hardisk sdb nya telah sesuai, mulai dari partisi primary serta logicalnya termasuk dengan spacenya. Hanya saja masih belum sesuai pada sisi partisi swap, yaitu masih belum terdapat kesesuaian antara partisi sdb7 dengan sda7.

Partisi swap Hardisk SDB

Berikut persiapan proses dari tahapan partisi swap yang masih menggunakan perintah fdisk dan didokumentasikan detailnya sebagai berikut.

Persiapan dd clone partisi /boot dan / terhadap Hardisk SDB

Dari hasil diatas dapat diketahui proses write speed cukup lambat dan tentu sangat tidak efektif apabila melakukan dd clone secara menyeluruh sebesar 500GB.

Format Partisi Hardisk SDB

Sebelumnya untuk partisi “/boot” dan “/” di sisi hardisk sdb telah diproses perpindahan datanya menggunakan dd clone. Namun untuk partisi lainnya dalam artikel ini tidak didokumentasikan menggunakan dd karena dua alasan pertimbangan yang telah disampaikan sebelumnya dan juga telah disampaikan melalui persiapan Disk Layout yaitu melakukan proses formatting untuk partisi yang telah dipersiapkan dari tahapan sebelumnya. Khusus untuk sdb1 “/boot” dan sdb2 “/” tidak ikut serta di format karena sudah diproses dd clone. Berikut perintah untuk melakukan proses format partisi menggunakan mkfs.ext4.

mke2fs 1.41.12 (17-May-2010)
Filesystem label=/var
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
3278576 inodes, 13108480 blocks
655424 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
401 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424
 
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
 
This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

 

Dari detail perintah yang digunakan, mkfs.ext4 menggunakan file system ext4 untuk partisi yang diformat tersebut dengan diberikan label “/var” sesuai dengan persiapan Disk Layout. Selanjutnya lakukan proses format partisi lainnya yang telah dibuat di sisi hardisk sdb sesuai dengan persiapan Disk Layout.

Format Partisi swap Hardisk SDB

Khusus untuk formatting file sistem swap menggunakan perintah yang berbeda dengan partisi lainnya, yakni menggunakan mkswap. Berikut detail perintahnya untuk partisi sdb7 sesuai dengan persiapan Disk Layout termasuk dengan pemberian label swap partisinya sebagai berikut.

Mount Partisi Hardisk SDB

Setelah Proses partisi dan formatting partisi selesai, selanjutnya proses mounting seluruh partisi-partisi hardisk sdb terlebih dahulu dibawah direktori sementara atau direktori “/mnt” sebelum siap menampung data dari masing-masing partisi hardisk sda.

Setelah seluruh paritisi termount, baik hardisk sda ataupun sdb maka akan tertampil sebagai berikut.

Sinkronisasi Data Hardisk

Setelah semua siap, selanjutnya proses sinkronisasi data dari setiap partisi hardisk sda terhadap partisi hardisk sdb. Khusus untuk partisi sda1 “/boot” terhadap sdb1 “/mnt/boot” dan sda2 “/” terhadap sdb2 “/mnt” tidak diproses karena sudah melalui dd clone pada proses sebelumnya.

Informasi tambahan, penggunakan perintah “rsync -ahP sumber_data/ tujuan_data/” dengan “rsync -ahP sumber_data tujuan_data/” akan berbeda hasilnya. Jika direktori sumber_data/ (menggunakan ‘/’ diujung argument) maka data-data di dalam direktori/subdirektorinya saja yang akan dipindahkan, tidak beserta dengan direktori utamanya, hasilnya nanti akan tersimpan menjadi tujuan_data/isi-sumber_data. Namun apabila tanpa menggunakan ‘/’ diujung argument, misal sumber_data saja maka direktori sumber_data nya pun akan ikut tersinkronisasi terhadap direktori tujuan_data sehingga nanti akan tersimpan tujuan_data/sumber_data/isi-sumber_data.

Label dan UUID Check

Salah satu fungsi dari proses labeli ng adalah sebagai acuan automounting partisi melalui fstab pada saat server mengalami proses booting atau rebooting. Proses pengecekan labelnya menggunakan perintah blkid sebagai berikut.

 

root@server [~]# blkid |grep /dev/sdb
/dev/sdb1: UUID="f255640a-27a5-423b-97df-3d14742f51ce" TYPE="ext4"
/dev/sdb2: UUID="6d062fc6-a686-4038-b2d1-36814ed39707" TYPE="ext4"
/dev/sdb3: LABEL="/var" UUID="b7655c77-cd2d-409b-baff-10c22ad04933" TYPE="ext4"
/dev/sdb5: LABEL="/usr" UUID="6c4a2be9-7f9e-4e23-bbde-92342ef773e8" TYPE="ext4"
/dev/sdb6: LABEL="/tmp" UUID="bf9f4883-2f02-42d0-9d40-f57dcb3018cd" TYPE="ext4"
/dev/sdb7: LABEL="swap" UUID="ce3d61ab-1dfc-48e9-ac8a-ad905a3fb763" TYPE="swap"
/dev/sdb8: LABEL="/home" UUID="3050a14a-6391-4164-9bd6-adc29045562d" TYPE="ext4"
/dev/sdb9: LABEL="/backup" UUID="75d3e5fb-e28b-4c0c-9dd1-504b0151167c" TYPE="ext4"

 

Dari hasilnya diatas, untuk partisi-partisi hardisk sda tidak menggunakan label sehingga acuan automounting nya menggunakan uuid yang perlu di baca melalui fstab, namun untuk hardisk sdb akan didokumentasikan menggunakan label guna memudahkan penamaan identitas partisi suatu hardisk.
Untuk partisi sdb1 dan sdb2 di sisi hardisk sdb masih belum memiliki label, oleh karenanya bisa ditambahkan terlebih dahulu menggunakan perintah e2label berikut.

Setelahnya bisa dicek kembali label-label partisi di sisi hardisk sdb menggunakan perintah blkid kembali.

Label Partisi fstab Hardisk SDB

File konfigurasi /etc/fstab berfungsi melakukan automounting suatu partisi beserta dengan filesistemnya. Karena pembahasan dokumentasi artikel ini adalah cloning disk untuk pergantian hardisk sda lama dengan hardisk sdb baru maka tentu informasi uuid setiap partisi hardisk sda lama harus diganti menjadi uuid setiap partisi hardisk baru atau sdb. Karena uuid bersifat identitas berupa bilangan hexacode, maka akan digantikan dengan label untuk memudahkan penamaan setiap partisi hardisk baru atau sdb agar pada saat server melakukan proses booting atau rebooting sistem, maka fstab akan mengenali partisi hardisk baru atau sdb melalui label yang telah dibuat dan dicocokan dari hasil blkid sebelumnya.
Karena hardisk baru atau sdb termount di “/mnt” maka lokasi file konfigurasinya tidak di “/etc/fstab” (karena sama dengan hardisk lama atau sda) melainkan di /dev/sdb2 atau di “/mnt/etc/fstab” mengingat lokasi fstab hardisk sdb tersimpan didalam direktori “/mnt/etc” hasil dari mounting /dev/sdb2 terhadap “/mnt”.

Secara default, fstab masih menggunakan uuid seperti yang telah disampaikan. Sebelum di edit atau diganti menggunakan label, baiknya file konfigurasi fstab yang asli dibackup terlebih dahulu.

Kemudian edit fstab nya menggunakan teks editor untuk pergantian uuid menjadi label.

Reinstall GRUB Hardisk SDB

Sampai pada tahapan ini, untuk seluruh data hardisk sda sudah tersinkronisasikan terhadap hardisk sdb, baik melalui dd clone maupun rsync. Namun apabila server dipoweroff (shutdown) kemudian hardisk sda dilepas dan dicoba menggunakan hardisk sdb maka server belum dapat melakukan proses booting dikarenakan GRUB perlu di install ulang di sisi partisi sdb1 atau /boot hardisk baru. Pertama masuk kedalam mode grub terlebih dahulu kemudian lakukan proses reinstall dengan perintah sebagai berikut.

Detail informasi terkait dengan proses reinstall grub dapat merujuk pada hyperlink ini. Silahkan bisa dicoba poweroff atau shutdown servernya, lepas hardisk sda kemudian dicoba poweron kembali dengan menggunakan hardisk sdb saja, secara otomatis hardisk sdb baru tersebut akan menjadi sda.

File System Check Partisi Hardisk SDB

Tahapan ini bersifat opsional namun direkomendasikan, yaitu fsck atau file system check yang berfungsi untuk melakukan reparasi setiap data yang telah di sinkronisasikan disisi hardisk sdb guna menghindari (apabila diteumkan) file yang korup yang dapat mengakibatkan gagal mounting suatu partisi oleh fstab pada saat server mengalami proses booting atau reboot, apabila di sisi fstab diaktifkan auto fsck. Terkait dengan proses fsck nya sendiri diperlukan unmounting filesytem untuk setiap partisinya terlebih dahulu.

Kemudian lakukan fsck untuk setiap partisi di sisi hardisk sdb sesuai dengan yang di perispakan di sisi Disk Layout, termasuk dengan partisi sdb1 yang nantinya akan menjadi “/boot” dan sdb2 yang nantinya akan menjadi “/”.

Percobaan Hasil Cloning Disk

Seluruh tahapan dan proses cloning disk sudah selesai. Silahkan bisa dicoba poweroff atau shutdown servernya, lepas hardisk sda kemudian poweron menggunakan hardisk sdb. Setelah server up, secara otomatis hardisk baru yang sebelumnya berada di posisi sdb akan menjadi disk file sistem yang aktif atau sda. Pastikan serial number sda nya sama dengan sdb pada persiapan Disk Layout sebelumnya mengingat hardisk baru yang dulu berada di posisi sdb sudah menjadi sda karena hardisk lamanya sudah dilepas.

Author Details
admin dari seorang yang terus belajar dan mencatat pengalaman kasus tentang server dan web semoga berguna untuk yang lain 🙂 untuk memecahkan masalah yang sama

Comments

comments