Inilah situasi saya:
- Dua dedicated server di datacenter yang sama dengan gigabit ethernet di antaranya.
- Kedua server khusus ini mem-boot ke lingkungan penyelamatan berdasarkan Debian Squeeze dengan tambahan alat dan utilitas. Juga banyak ruang tmp (32GB RAM pada kedua kotak) untuk mengunduh perangkat lunak, menginstal paket, dan / atau mengkompilasi sesuai kebutuhan.
- Kedua dedicated server memiliki sekitar 3TB ruang yang dapat digunakan.
- Server "sumber" memiliki disk 4 x 1,5TB di Hardware RAID-10 dengan pengontrol port Adaptec 4.
- Server "tujuan" memiliki disk 2 x 3TB di Hardware RAID-1 dengan pengontrol port Adaptec 2 - generasi yang sama dengan yang lain, tetapi jumlah port yang berbeda.
- Jumlah blok yang dapat digunakan pada
/dev/sda
berbeda kurang dari 10 MB, tetapi array server tujuan untuk beberapa alasan beberapa MB lebih kecil. - Kedua array RAID dikonfigurasikan untuk menggunakan seluruh permukaan disk semua disk konstituen untuk membuat satu, volume RAID tunggal.
- Sistem operasi melakukan booting dalam mode MBR; tidak ada booting UEFI digunakan.
Apa yang ingin saya lakukan:
- Salin, pada lapisan blok, seluruh gambar OS (ini hanya terdiri dari bootloader GRUB2 di tabel partisi GPT, / partisi boot, dan / partisi) dari server "sumber" ke server "tujuan".
- Jika memungkinkan , salinannya akan berlangsung "langsung": ini berarti saya tidak memiliki cukup ruang untuk menyimpan file gambar disk yang tepat di sisi tujuan, kecuali jika saya membongkar gambar disk ke hard disk sebagai salinan. sedang terjadi . Koneksi ethernet gigabit antara server cukup dapat diandalkan sehingga saya nyaman dengan ini, dan tentu saja saya akan berjalan
fsck
pada kedua ujung (sumber dan tujuan) untuk memverifikasi sistem file OK sebelum dan setelah transfer. - Jika memungkinkan , jangan transfer blok melalui jaringan, yang tidak digunakan oleh sistem file konstituen di setiap partisi (semua partisi diformat sebagai ext4). Ini karena lebih dari 50% dari disk "sumber" adalah ruang kosong di
/
partisi. - Sesuaikan ukuran
/
partisi sehingga ketika disalin, ukurannya disesuaikan agar pas dengan ukuran disk tujuan yang lebih kecil. - Setelah salinan berhasil, pasang setiap volume dan perbaiki referensi ke IP statis untuk mencerminkan IP server baru. (Dapat melakukan ini dengan baik tanpa bantuan lebih lanjut)
Pertanyaan saya:
- Haruskah saya menghitung dulu perbedaan (dalam byte) antara ukuran
/dev/sda
pada setiap server, dan kemudian gunakane2resize
untuk secara non-destruktif mengurangi ukuran/
partisi di sisi sumber sehingga akan masuk ke dalam ruang sisi tujuan? - Haruskah saya menjalankan
dd
perangkat raw block,/dev/sda
dari sumber ke tujuan (lebihssh
), atau haruskah saya membuat tata letak partisi yang setara pada tujuan dan berjalandd
di setiap partisi ? Perhatikan bahwa menangani partisi pada satu waktu membuat saya masalah dengan bootloader, tetapi jika saya tidak melakukannya partisi pada suatu waktu, makadd
perlu tahu untuk berhenti mentransfer data setelah itu telah menulis banyak byte karena tujuan dapat menampung (yang diharapkan akan "menutup" bagian paling akhir dari/
partisi di blok terakhir, yang secara logis "di sebelah kanan" semua partisi lain di tata letak partisi sumber).
Beberapa misc. spesifik:
- OS host pada kotak sumber adalah Ubuntu Server 12.04 yang menjalankan beberapa tamu OpenVZ
- Karena kedua kotak di-boot menjadi penyelamat, akses disk langsung dimungkinkan tanpa mengharapkan perubahan apa pun pada data yang mendasarinya oleh sistem operasi yang berjalan.