GNU/Linux >> Belajar Linux >  >> Linux

Cara menggunakan snapshot, klon dan replikasi di ZFS di Linux

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 tersedia

Memutar 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]     9K   

Sekarang kita ubah isi /docs/data.txt

# echo "versi 2"> /docs/data.txt
# cat /docs/data.txt
versi 2

Kita 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 1

Seperti 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/pict

Proses 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  folder5

Setelah 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/pict

Akhirnya 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 diketahui

pool: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  folder5

Saatnya 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  folder5

Kumpulan 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/backup

Selesai.

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
  1. Apa itu Perintah Chown di Linux dan Cara Menggunakannya

  2. Cara Menginstal Dan Menggunakan Flatpak Di Linux

  3. Cara Menginstal dan Menggunakan Traceroute di Linux

  1. Cara menginstal dan menggunakan telnet di Kali Linux

  2. Cara Menggunakan TimeShift untuk Mencadangkan dan Memulihkan Ubuntu Linux

  3. Bagaimana Cara Menginstal dan Menggunakan Layar Linux?

  1. Perintah Tail Linux:Apa Itu dan Bagaimana Cara Menggunakannya

  2. Cara Menginstal dan Menggunakan SSHFS di Linux

  3. Cara Menginstal dan Menggunakan Slack di Linux