Pada tutorial sebelumnya, kita telah mempelajari cara membuat zpool dan filesystem atau dataset ZFS. Dalam tutorial ini, saya akan menunjukkan kepada Anda langkah demi langkah cara bekerja dengan snapshot, kloning, dan replikasi ZFS. Cuplikan, klon. dan replikasi adalah fitur yang paling kuat dari sistem file ZFS.
ZFS Snapshots - ikhtisar
Snapshot adalah salah satu fitur paling kuat dari ZFS, snapshot menyediakan salinan sistem file atau volume hanya-baca, point-in-time yang tidak menghabiskan ruang ekstra di kumpulan ZFS. Snapshot hanya menggunakan ruang ketika referensi blok diubah. Snapshot menghemat ruang disk dengan hanya merekam perbedaan antara kumpulan data saat ini dan versi sebelumnya.
Contoh umum yang digunakan untuk snapshot adalah memiliki cara cepat untuk mencadangkan status sistem file saat ini ketika tindakan berisiko seperti penginstalan perangkat lunak atau peningkatan sistem dilakukan.
Membuat dan Menghancurkan Snapshot ZFS
Cuplikan volume tidak dapat diakses secara langsung, tetapi dapat dikloning, dicadangkan, dan digulung kembali. Membuat dan menghancurkan snapshot ZFS sangat mudah, kita dapat menggunakan perintah zfs snapshot dan zfs destroy untuk itu.
Buat kumpulan yang disebut kumpulan data.
# zpool create datapool mirror /dev/sdb /dev/sdc
# zpool list
NAME SIZE ALLOC GRATIS PERLUASZ FRAG CAP DEDUP ALTROOT KESEHATAN
datapool 1.98G 65K 0% 1,00x ONLINE -
Sekarang, kita memiliki kumpulan yang disebut kumpulan data, selanjutnya kita harus membuat satu sistem file ZFS untuk mensimulasikan fitur snapshot.
# zfs create datapool/docs -o mountpoint=/docs
# zfs list -r datapool
NAME DIGUNAKAN AVAIL REFER MOUNTPOINT
datapool 93.5K 1.92G
/datapool datapool/docs 19K 1.92G 19K /docs
Untuk membuat snapshot dari sistem file, kita dapat menggunakan perintah snapshot zfs dengan menentukan kumpulan dan nama snapshot. Kita dapat menggunakan opsi -r jika ingin membuat snapshot secara rekursif. Nama snapshot harus memenuhi persyaratan penamaan berikut:
[email protected][email protected]
# zfs snapshot datapool/[email protected]
# zfs list -t snapshot
NAME DIGUNAKAN AVAIL REFER MOUNTPOINT
datapool/[email protected] 0 >Cuplikan untuk datapool/docs telah dibuat.
Untuk menghancurkan snapshot, kita bisa menggunakan perintah zfs destroy seperti biasa.
# zfs menghancurkan datapool/[email protected]
# zfs list -t snapshot
tidak ada set data yang tersediaMemutar kembali snapshot
Untuk simulasi, kita perlu membuat file tes di direktori /docs.
# echo "versi 1"> /docs/data.txt
# cat /docs/data.txt
versi 1# zfs snapshot datapool/[email protected]
# zfs list -t snapshot
NAME DIGUNAKAN AVAIL REFER MOUNTPOINT
datapool/[email protected] 9KSekarang kita ubah isi /docs/data.txt
# echo "versi 2"> /docs/data.txt
# cat /docs/data.txt
versi 2Kita dapat memutar kembali sepenuhnya ke snapshot lama yang akan memberi kita salinan titik waktu saat snapshot diambil.
# zfs list -t snapshot
NAME DIGUNAKAN AVAIL REFER MOUNTPOINT
datapool/[email protected] 9.50K - 19.5K -
# zfs rollback datapool]># cat /docs/data.txt
versi 1Seperti yang kita lihat, konten data.txt kembali ke konten sebelumnya.
Jika kita ingin mengganti nama snapshot, kita dapat menggunakan perintah zfs rename.
# zfs rename datapool/[email protected] datapool/[email protected]
# zfs list -t snapshot
NAME DIGUNAKAN AVAIL REFER MOUNTPOINT
datapool] [email] dilindungi 19,5rb -Catatan:kumpulan data tidak dapat dimusnahkan jika snapshot kumpulan data ini ada, tetapi kita dapat menggunakan opsi -r untuk menggantinya.
# zfs menghancurkan datapool/docs
tidak dapat menghancurkan 'datapool/docs':filesystem memiliki anak
gunakan '-r' untuk menghancurkan kumpulan data berikut:
datapool/[email protected]# zfs menghancurkan -r datapool/docs
# zfs list -t snapshot
tidak ada kumpulan data yang tersedia
Ikhtisar Klon ZFS
Klon adalah volume yang dapat ditulisi atau sistem file yang konten awalnya sama dengan kumpulan data yang digunakan untuk membuatnya.
Membuat dan Menghancurkan Klon ZFS
Klon hanya dapat dibuat dari snapshot dan snapshot tidak dapat dihapus sampai Anda menghapus klon yang didasarkan pada snapshot ini. Untuk membuat klon, gunakan perintah zfs clone.
# zfs create datapool/docs -o mountpoint=/docs
# zfs list -r datapool
NAME DIGUNAKAN AVAIL REFER MOUNTPOINT
datapool 93.5K 1.92G
/datapool datapool/docs 19K 1.92G 19K /docs# mkdir /docs/folder{1..5}
# ls /docs/
folder1 folder2 folder3 folder4 folder5# zfs snapshot datapool/[email protected]
# zfs list -t snapshot
NAME DIGUNAKAN AVAIL REFER MOUNTPOINT
datapool/[email protected] 0 -Sekarang kita membuat klon dari kumpulan data snapshot/[email protected]
# zfs clone datapool/[email protected] datapool/pict
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
datapool 166K 1.92G 19K /datapool/
/datapool 1.92G 19K /docs
datapool/pict 1K 1.92G 19K /datapool/pictProses kloning selesai, snapshot datapool/[email protected] telah di-clone ke /datapool/pict. Saat kami memeriksa konten direktori /datapool/pict, konten harus sama dengan /datapool/docs.
# ls /datapool/pict
folder1 folder2 folder3 folder4 folder5Setelah kami mengkloning snapshot, snapshot tidak dapat dihapus sampai Anda menghapus kumpulan data.
# zfs destroy datapool/[email protected]
cannot destroy 'datapool/[email protected]':snapshot memiliki klon dependen
gunakan '-R' untuk menghancurkan kumpulan data berikut:
kumpulan data/gambar# zfs menghancurkan datapool/pictAkhirnya kita bisa menghancurkan snapshot.
# zfs menghancurkan datapool/[email protected]
# zfs list -t snapshot
tidak ada set data yang tersedia
Ikhtisar Replikasi ZFS
Dasar dari replikasi ZFS ini adalah snapshot, kita dapat membuat snapshot kapan saja, dan kita dapat membuat snapshot sebanyak yang kita suka. Dengan terus membuat, mentransfer, dan memulihkan snapshot, Anda dapat menyediakan sinkronisasi antara satu atau beberapa mesin. ZFS menyediakan fitur serialisasi bawaan yang dapat mengirim representasi aliran data ke output standar.
Konfigurasi Replikasi ZFS
Di bagian ini, saya ingin menunjukkan kepada Anda cara mereplikasi kumpulan data dari kumpulan data ke kumpulan cadangan, tetapi dimungkinkan untuk tidak hanya menyimpan data di kumpulan lain yang terhubung ke sistem lokal, tetapi juga mengirimkannya melalui jaringan ke sistem lain. Perintah yang digunakan untuk mereplikasi data adalah zfs send dan zfs accept.
Buat kumpulan lain yang disebut backuppool.
# zpool create backuppool mirror sde sdf
# zpool list
NAME UKURAN ALLOC GRATIS EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
backuppool 1.98G 1.98G 1.98G
datapool 1.98G 568K 1.98G - 0% 0% 1.00x ONLINE -Periksa status kumpulan:
# zpool status
pool:datapool
state:ONLINE
scan:tidak ada yang diminta
config:
NAMA NEGARA BACA TULIS CKSUM
Datapool online 0 0 0
Mirror-0 online 0 0 0
SDB Online 0 0 0
SDC Online 0 0 0
Kesalahan:Tidak ada kesalahan data yang diketahuipool:backuppool
status:ONLINE
scan:tidak ada yang diminta
config:
NAME NEGARA READ WRITE CKSUM
backuppool ONLINE 0 0 mirror-0 ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 > kesalahan data yang diketahui 0
Buat kumpulan data yang akan kita tiru.
# zfs snapshot datapool/[email protected]
# zfs list -t snapshot
NAME DIGUNAKAN AVAIL REFER MOUNTPOINT
datapool/[email protected] 0 /> - ls /docs/
folder1 folder2 folder3 folder4 folder5Saatnya melakukan replikasi.
# zfs send datapool/[email protected] | zfs menerima backuppool/backup
# zfs list
NAME DIGUNAKAN AVAIL REFER MOUNTPOINT
backuppool 83K 1.92G 19K /backuppool/
backuppool />backup> datapool 527K 1.92G 19K /datapool
datapool/docs 19K 1.92G 19K /docs# ls /backuppool/backup
folder1 folder2 folder3 folder4 folder5Kumpulan dataset/[email protected] telah berhasil direplikasi ke backuppool/backup.
Untuk mereplikasi dataset ke komputer lain, kita dapat menggunakan perintah di bawah ini:
# zfs send datapool/[email protected] | ssh server lain zfs recv backuppool/backupSelesai.
Kesimpulan
Snapshot, clone, dan replikasi adalah fitur yang paling kuat dari ZFS. Snapshot digunakan untuk membuat salinan sistem file atau volume secara tepat waktu, kloning digunakan untuk membuat kumpulan data duplikat, dan replikasi digunakan untuk mereplikasi kumpulan data dari satu kumpulan data ke kumpulan data lain di mesin yang sama atau untuk mereplikasi kumpulan data di antara kumpulan data yang berbeda mesin.
Linux