Topik ini menjelaskan cara menggunakan tool rsync untuk melakukan migrasi data antara sistem file Apsara File Storage NAS yang menggunakan protokol NFS.
Prasyarat
Anda memiliki sistem file NFS yang berisi data dan titik pemasangan di VPC.
Billing
Migrasi data antara sistem file NAS melibatkan biaya berikut:
Anda dikenai biaya untuk Instance ECS yang digunakan sebagai node transfer data berdasarkan konfigurasinya. Untuk informasi lebih lanjut mengenai penagihan ECS, lihat Ikhtisar metode penagihan.
Anda dikenai biaya penggunaan penyimpanan untuk kedua sistem file NAS tersebut. Kami menyarankan Anda membeli paket sumber daya untuk mengimbangi biaya tersebut. Untuk informasi lebih lanjut mengenai penagihan NAS, lihat Ikhtisar penagihan.
Jika Anda menggunakan CEN untuk menghubungkan VPC, Anda akan dikenai biaya untuk router transit dan koneksi antar-wilayah. Untuk informasi lebih lanjut mengenai penagihan CEN, lihat Penagihan.
Sebelum memulai
Untuk melakukan migrasi data antara sistem file NAS, Instance ECS harus dapat mengakses kedua sistem file sumber dan tujuan. Oleh karena itu, Anda harus memastikan bahwa kedua sistem file tersebut dapat diakses dari VPC yang sama.
Lihat informasi titik pemasangan sistem file sumber.
Sebelum melakukan migrasi data, catat informasi titik pemasangan dan VPC dari sistem file sumber. Untuk informasi lebih lanjut, lihat Kelola titik pemasangan.
CatatanJika sistem file Anda hanya memiliki titik pemasangan jaringan klasik, Anda harus membuat titik pemasangan di VPC. Untuk informasi lebih lanjut, lihat Tambahkan titik pemasangan.
Konfigurasikan titik pemasangan sistem file tujuan.
Sistem file sumber dan tujuan berada di wilayah yang sama
Jika titik pemasangan sistem file sumber dan tujuan berada di VPC yang sama, peroleh informasi titik pemasangan tujuan, lalu lanjutkan ke bagian Prosedur untuk melakukan migrasi data.
Jika titik pemasangan sistem file sumber dan tujuan berada di VPC yang berbeda, siapkan titik pemasangan sistem file tujuan dengan salah satu metode berikut:
Buat sistem file baru di wilayah dan zona tujuan. Titik pemasangan baru akan dibuat secara otomatis. Untuk informasi lebih lanjut, lihat Buat sistem file NAS tujuan umum di Konsol.
CatatanSaat membuat sistem file NAS tujuan umum bayar sesuai penggunaan (Capacity, Performance, atau Premium) yang menggunakan protokol NFS, pilih VPC dan vSwitch yang sama dengan titik pemasangan sumber. Titik pemasangan tujuan akan dibuat secara otomatis. Setelah sistem file baru dibuat, Anda dapat membeli paket sumber daya untuk mengurangi biaya.
Buat titik pemasangan baru pada sistem file yang sudah ada. Untuk informasi lebih lanjut, lihat Tambahkan titik pemasangan.
Gunakan CEN untuk menghubungkan VPC dari titik pemasangan sumber dan tujuan. Untuk informasi lebih lanjut, lihat Pasang sistem file NAS lintas VPC dalam wilayah yang sama menggunakan CEN.
Sistem file sumber dan tujuan berada di akun atau wilayah yang berbeda
Jika titik pemasangan sistem file sumber dan tujuan berada di akun atau wilayah yang berbeda, Anda harus menggunakan CEN untuk menghubungkan VPC-nya. Untuk informasi lebih lanjut, lihat Pasang sistem file NAS lintas akun dan wilayah menggunakan CEN.
Prosedur
Setelah menyiapkan titik pemasangan sumber dan tujuan, buat Instance ECS, pasang kedua sistem file NFS ke instans tersebut, lalu gunakan tool rsync untuk menyalin data.
Pasang sistem file sumber dan tujuan.
PentingKami menyarankan Anda membeli Instance ECS baru yang bersifat sementara untuk migrasi ini. Jika Anda menggunakan Instance ECS yang sudah ada, proses migrasi dapat bersaing dalam penggunaan sumber daya CPU dan lebar pita jaringan dengan layanan Anda yang sedang berjalan.
Login ke Konsol ECS, klik Create Instance, lalu konfigurasikan parameter utama berikut.
Region: Pilih wilayah tempat sistem file sumber berada.
Network and Zone: Pilih VPC, zona, dan vSwitch sistem file sumber.
Instance Type: Tipe instans berbiaya rendah biasanya sudah cukup.
Image: Pilih CentOS 7.6.
Storage: Klik bagian Elastic Ephemeral Disk | Apsara File Storage NAS | Dedicated Block Storage Cluster (Optional), lalu klik Add File System. Untuk informasi lebih lanjut, lihat detail konfigurasi berikut.
CatatanJika titik pemasangan sumber dan tujuan berada di VPC yang sama, Anda dapat mengonfigurasi informasi pemasangan NAS pada halaman pembelian ECS. Setelah Instance ECS dijalankan, sistem secara otomatis akan memasang kedua sistem file NAS sumber dan tujuan.
Jika titik pemasangan sumber dan tujuan tidak berada di VPC yang sama, atau berada di wilayah atau akun yang berbeda, konfigurasikan hanya sistem file sumber pada halaman pembelian ECS. Setelah Instance ECS dibuat, pasang sistem file tujuan secara manual. Untuk informasi lebih lanjut, lihat Pasang sistem file NFS.
Setelah Instance ECS dibuat dan kedua sistem file NAS dipasang, jalankan perintah berikut untuk memverifikasi pemasangan:
mount | grep nas.aliyuncs.comJika pemasangan berhasil, output-nya menyerupai contoh berikut: Sistem file sumber dipasang ke direktori
/mnt/volumeAdan sistem file tujuan dipasang ke direktori/mnt/volumeB.[root@xxx ~]# mount | grep nas.aliyuncs.com xxx.nas.aliyuncs.com:/ on /mnt/volumeA type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.0.198,mountvers=3,mountport=4002,mountproto=tcp,local_lock=all,addr=192.168.0.198,_netdev) xxx.nas.aliyuncs.com:/ on /mnt/volumeB type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.0.213,mountvers=3,mountport=2049,mountproto=tcp,local_lock=all,addr=192.168.0.213,_netdev)Instal tool migrasi.
Jalankan perintah berikut untuk menginstal tool migrasi:
sudo yum install -y rsync tmuxCatatanrsync melakukan penyalinan data.
tmux adalah multiplexer terminal yang memungkinkan Anda menjalankan proses rsync dalam sesi persisten. Hal ini membantu Anda memantau progres dan mencegah proses terhenti jika koneksi SSH terputus.
Migrasi data yang sudah ada.
Jalankan perintah berikut untuk menyinkronkan data yang sudah ada dari sistem file sumber ke sistem file tujuan:
tmux sudo rsync -avP /mnt/volumeA/ /mnt/volumeB/Anda juga dapat menggunakan rsync untuk penyalinan konkuren:
threads=<jumlah thread>; src=<jalur sumber/>; dest=<jalur tujuan/>; rsync -av -f"+ */" -f"- *" $src $dest && (cd $src && find . -type f | xargs -n1 -P$threads -I% rsync -av % $dest/% )Contohnya, jika jumlah thread adalah 10, jalur sumber adalah /abc, dan jalur tujuan adalah
/mnt1:threads=10; src=/abc/; dest=/mnt1/; rsync -av -f"+ */" -f"- *" $src $dest && (cd $src && find . -type f | xargs -n1 -P$threads -I% rsync -av % $dest/% )CatatanJalur sumber dalam perintah rsync harus diakhiri dengan garis miring (/). Jika tidak, jalur data tidak akan sesuai setelah sinkronisasi.
Perintah tmux membuat sesi tmux baru. Menjalankan
rsyncdalam sesi tmux membantu Anda memantau progres. Jika koneksi ke Instance ECS terputus selama migrasi, login kembali dan jalankantmux attachuntuk melanjutkan sesi tmux dan terus memantau.Dalam lingkungan pengujian, migrasi sistem file sumber yang berisi satu juta file berukuran 100 KiB (total 100 GiB) memerlukan waktu sekitar 320 menit.
Migrasi data inkremental.
Jika aplikasi menulis data ke sistem file sumber selama migrasi data awal, Anda harus melakukan sinkronisasi ulang untuk menyalin data inkremental tersebut.
Hentikan aplikasi Anda.
Untuk mencegah aplikasi menulis data baru, hentikan semua aplikasi pada Instance ECS dan kontainer yang menggunakan sistem file sumber sebelum menyinkronkan data inkremental.
PentingSetelah menghentikan aplikasi, jangan menghapus data apa pun secara manual dari sistem file sumber. Jika tidak, Anda berisiko kehilangan data pada langkah berikutnya.
Kami menyarankan Anda melakukan operasi ini pada jam sepi. Anda dapat menggunakan perintah
fuser -mv <dir>untuk mencari ID proses (PID) yang mengakses sistem file NAS.
Sinkronkan data inkremental.
Jalankan perintah rsync berikut untuk menyinkronkan data inkremental yang dihasilkan setelah migrasi awal dimulai:
sudo rsync -avP --delete /mnt/volumeA/ /mnt/volumeB/Perintah rsync pertama kali memindai jalur sumber, sehingga proses ini dapat memakan waktu lama meskipun hanya terdapat sedikit data inkremental.
PeringatanOpsi --delete menghapus file dari sistem file tujuan yang tidak lagi ada di sistem file sumber. Gunakan opsi ini dengan hati-hati untuk mencegah penghapusan data secara tidak sengaja.
Verifikasi migrasi.
Setelah migrasi selesai, jalankan perintah rsync berikut untuk memeriksa apakah sistem file tujuan konsisten dengan sistem file sumber:
sudo rsync -rvn /mnt/volumeA/ /mnt/volumeB/Jika data konsisten, output tidak mencantumkan jalur file dan menyerupai contoh berikut:
sending incremental file list sent 13.570.658 bytes received 5.008 bytes 17.173,52 bytes/sec total size is 100.000.000.000 speedup is 7.366,12 (DRY RUN)
Beralih ke sistem file baru
Setelah migrasi data selesai, alihkan aplikasi Anda ke sistem file baru dengan melepas pemasangan sistem file lama dan memasang sistem file baru pada semua Instance ECS dan kontainer yang relevan.
Untuk aplikasi yang berjalan di Instance ECS:
Jalankan
mount | grep nas.aliyuncs.comuntuk melihat informasi pemasangan NAS saat ini. Catat jalur lokal <dir> tempat sistem file dipasang.Jalankan
fuser -mv <dir>untuk mencari PID proses yang mengakses sistem file, lalu hentikan proses tersebut dengan perintahkill -9.Jalankan
umount <dir>untuk melepas pemasangan sistem file lama.Pasang sistem file baru ke jalur <dir> asli. Untuk informasi lebih lanjut mengenai parameter pemasangan, lihat Pasang sistem file NFS.
Jalankan ulang proses aplikasi dan verifikasi bahwa aplikasi dapat membaca dan menulis ke sistem file baru.
Ubah konfigurasi auto-mount di file /etc/fstab untuk mengganti titik pemasangan lama dengan yang baru.
Untuk aplikasi yang berjalan di kontainer Kubernetes:
Ubah file konfigurasi YAML volume dinamis atau volume persisten yang ada untuk mengganti titik pemasangan lama dengan yang baru.
Gunakan file konfigurasi yang telah diubah untuk membuat Pod baru. Verifikasi bahwa sistem file baru dipasang dengan benar serta dapat dibaca dan ditulis.
Hentikan semua Pod yang menggunakan sistem file lama.
Setelah beralih ke sistem file baru, simpan data di sistem file lama minimal selama satu minggu. Jangan langsung menghapus data dari sistem file lama untuk mencegah potensi kehilangan data akibat penghapusan tidak sengaja atau kesalahan sinkronisasi.