Di halaman ini
- Prasyarat:
ZFS adalah gabungan sistem file dan manajer volume logis. Fitur ZFS termasuk perlindungan terhadap korupsi data, dukungan untuk kapasitas penyimpanan yang tinggi, kompresi data yang efisien, integrasi sistem file dan konsep manajemen volume, snapshot dan klon copy-on-write, pemeriksaan integritas berkelanjutan dan perbaikan otomatis, RAID-Z dan native ACL NFSv4.
ZFS awalnya diimplementasikan sebagai perangkat lunak sumber terbuka, dilisensikan di bawah Lisensi Pengembangan dan Distribusi Umum (CDDL).
Ketika kita berbicara tentang sistem file ZFS, kita dapat menyoroti konsep kunci berikut:
- Integritas data.
- Administrasi penyimpanan sederhana dengan hanya dua perintah:zfs dan zpool.
- Semuanya dapat dilakukan saat sistem file online.
Untuk ikhtisar lengkap dan deskripsi semua fitur yang tersedia, lihat artikel wikipedia terperinci ini.
Dalam tutorial ini, saya akan memandu Anda langkah demi langkah melalui instalasi sistem file ZFS di Debian 8.1 (Jessie). Saya akan menunjukkan cara membuat dan mengkonfigurasi pool menggunakan raid0 (stripe), raid1 (Mirror) dan RAID-Z (Raid with parity) dan menjelaskan cara mengkonfigurasi sistem file dengan ZFS.
Berdasarkan informasi dari situs web www.zfsonlinux.org, ZFS hanya didukung pada arsitektur AMD64 dan Intel 64 Bit (amd64). Mari kita mulai dengan penyiapan.
Prasyarat:
- Debian 8 dengan Kernel 64bit.
- hak istimewa root.
Langkah 1 - Perbarui Repositori dan Perbarui Sistem Linux Debian
Untuk menambahkan repositori zfsonlinux ke sistem kami, unduh dan instal paket zfsonlinux seperti yang ditunjukkan di bawah ini. Ini akan menambahkan file /etc/apt/sources.list.d/zfsonlinux.list dan /etc/apt/trusted.gpg.d/zfsonlinux.gpg di komputer Anda. Setelah itu, Anda dapat menginstal zfs seperti paket Debian lainnya dengan perintah apt-get. Manfaat lain menggunakan repositori zfsonlinux adalah Anda mendapatkan pembaruan secara otomatis dengan menjalankan "apt-get update &&apt-get upgrade".
Masuk ke server Debian dengan akses SSH, menjadi pengguna root, lalu jalankan perintah berikut.
# uname -a
Linux debian-zfs 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux
# wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_6_all.deb
# dpkg -i zfsonlinux_6_all.deb
# apt-get update
Langkah 2 - Instal zfsonlinux
Zfsonlinux memiliki banyak dependensi perangkat lunak yang diinstal oleh apt secara otomatis. Proses ini akan memakan waktu cukup lama. Ketika instalasi selesai, reboot server.
# apt-get install lsb-release
# apt-get install debian-zfs
# shutdown -r sekarang
Langkah 3 - Buat dan konfigurasikan kumpulan
Setelah server di-boot ulang, periksa apakah zfsonlinux telah diinstal dan berjalan dengan baik.
# dpkg -l | grep zfs
II debian-zfs 7 ~ Jessie AMD64 Native ZFS Filesystem Metapackage untuk Debian.
II libzfs2 0.6.5.2-2 AMD64 Perpustakaan sistem file ZFS asli untuk Linux
II ZFS-DKMS 0.6.5.2 -2 Semua modul kernel sistem file zfs asli untuk linux
ii zfsonlinux 6 all archive.zfsonlinux.org Paket kepercayaan
II zfsutils 0.6.5.2-2 AMD64 Alat baris perintah untuk mengelola sistem file ZFS
Hasil di atas menunjukkan bahwa zfs di linux sudah terinstal, jadi kita bisa melanjutkan dengan membuat kumpulan pertama.
Saya telah menambahkan lima disk ke server ini, masing-masing dengan ukuran 2GB. Kami dapat memeriksa disk yang tersedia dengan perintah ini:
# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda5 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg
Kita dapat melihat bahwa kita memiliki /dev/sda hingga /dev/sdg, /dev/sda digunakan untuk sistem operasi Debian Linux Jessie 8.1. Kami akan menggunakan /dev/sdb hingga /dev/sdg untuk sistem file ZFS.
Sekarang kita bisa mulai membuat poolnya, untuk yang pertama saya akan tunjukkan cara membuat raid0 (stripe).
# zpool list
tidak ada pool yang tersedia
# zpool create -f pool0 /dev/sdb
# zpool list
NAME UKURAN ALLOC GRATIS EXPANDSZ FRAG CAP DEDUP KESEHATAN ALTROOT
pool0 1.98G 64K 0 x ONLINE -
Perintah "zpool list" menunjukkan bahwa kita berhasil membuat satu raid0 zfs pool, nama poolnya adalah pool0, dan ukurannya 2GB.
Selanjutnya kita akan membuat raid1 (mirror) dengan disk lainnya.
# zpool create -f pool1 mirror /dev/sdc /dev/sdd
# zpool list
NAME UKURAN ALLOC GRATIS EXPANDSZ FRAG CAP DEDUP ALTROOT KESEHATAN
pool0 1.98G 1.98G 1.98G 0% 0% 1.00x ONLINE -
pool1 1.98G 64K 1.98G - 0% 0% 1.00x ONLINE -
Kita dapat melihat bahwa kita memiliki dua kumpulan sekarang, kumpulan0 untuk raid0 dan pool1 untuk raid1.
Untuk memeriksa status pool, kita dapat menggunakan perintah di bawah ini:
# zpool status
pool:pool0
state:ONLINE
scan:tidak ada yang diminta
config:
NAMA NEGARA BACA TULIS CKSUM
pool0 ONLINE 0 0 0
sdb ONLINE 0 0 0
kesalahan:Tidak ada kesalahan data yang diketahui:
ONLINE /
ONLINE> Pemindaian:Tidak ada yang diminta
Config:
Nama Negara Baca Tulis Cksum
Pool1 Online 0 0 0
Mirror-0 Online 0 0 0
SDC Online 0 0 0
sdd ONLINE 0 0 0
kesalahan:Tidak ada kesalahan data yang diketahui
Kita bisa mengecek status pool dengan perintah "zpool status". Kita dapat melihat perbedaan antara pool0 dan pool1, pool0 hanya memiliki satu disk, dan pool1 memiliki dua disk dan status disk adalah mirror (mirror-0).
Selanjutnya, kita akan membuat kumpulan dengan RAID-Z, RAID-Z adalah skema distribusi data/paritas seperti RAID-5, tetapi menggunakan lebar strip dinamis:setiap blok memiliki strip RAID sendiri, berapa pun ukuran bloknya, menghasilkan setiap penulisan RAID-Z menjadi penulisan garis penuh.
RAID-Z membutuhkan minimal tiga hard drive dan merupakan semacam kompromi antara RAID 0 dan RAID 1. Di kumpulan RAID-Z:Jika satu disk di kumpulan Anda mati, cukup ganti disk itu dan ZFS akan secara otomatis membangun kembali data berdasarkan informasi paritas dari disk lain. Untuk kehilangan semua informasi di kumpulan penyimpanan Anda, dua disk harus mati. Untuk membuat penyiapan drive lebih berlebihan, Anda dapat menggunakan RAID 6 (RAID-Z2 dalam kasus ZFS) untuk mendapatkan paritas ganda.
Mari buat kumpulan RAID-Z dengan satu paritas terlebih dahulu.
# zpool create -f poolz1 raidz sde sdf sdg
# zpool list poolz1
NAME UKURAN ALLOC GRATIS EXPANDSZ FRAG CAP DEDUP ALTROOT KESEHATAN
poolz 0 5.94G 1,00x ONLINE -
# zpool status poolz1
pool:poolz1
state:ONLINE
scan:tidak ada yang diminta
config:
NAMA NEGARA BACA TULIS CKSUM
Poolz1 online 0 0 0
raidz1-0 online 0 0 0
SDE Online 0 0 0
SDF Online 0 0 0
SDG Online 0 0 0
kesalahan:Tidak ada kesalahan data yang diketahui
# df -h /poolz1
Filesystem Ukuran Digunakan Tersedia Penggunaan% Dipasang di
poolz1 3.9G 0 3.9G 0% /poolz1
Seperti yang kita lihat, df -h menunjukkan bahwa kumpulan 6GB kami sekarang telah dikurangi menjadi 4GB, 2GB digunakan untuk menyimpan informasi paritas. Dengan perintah status zpool, kami melihat bahwa kumpulan kami menggunakan RAID-Z sekarang.
Selanjutnya kita akan membuat RAID-Z2 (raid 6), untuk tujuan ini kita harus menghapus pool yang ada karena tidak ada lagi disk yang tersedia. Menghapus pool sangat mudah, kita bisa menggunakan perintah zpool destroy untuk itu.
# zpool list
NAME UKURAN ALLOC GRATIS EXPANDSZ FRAG CAP DEDUP ALTROOT KESEHATAN
pool0 1.98G 64K 1.98G LINE - 0% 0% 0% 0% 0% 1.00x ONLINE -
poolz1 5.94G 117K 5.94G - 0% 0% 1.00x ONLINE -
# zpool menghancurkan pool0
# zpool menghancurkan pool1
# zpool menghancurkan poolz1
# daftar zpool
tidak ada pool yang tersedia
Sekarang semua zpool kami hilang, jadi kami dapat membuat kumpulan RAID-Z2.
# zpool create poolz2 raidz2 sdb sdc sdd sde
# zpool list
NAME UKURAN ALLOC GRATIS EXPANDSZ FRAG CAP DEDUP KESEHATAN ALTROOT
poolz2 94% 94% 94G ONLINE -
# df -h /poolz2
Filesystem Ukuran Digunakan Tersedia Penggunaan% Dipasang di
poolz2 3.9G 0 3.9G 0% /poolz2
# zpool status poolz2
pool:poolz2
state:ONLINE
scan:tidak ada yang diminta
config:
NAMA NEGARA BACA TULIS CKSUM
Poolz2 online 0 0 0
raidz2-0 online 0 0 0
SDB Online 0 0 0
SDC ONLINE 0 0 0
SDD Online 0 0 0
SDE ONLINE 0 0 0
kesalahan:Tidak ada kesalahan data yang diketahui
Seperti yang dapat kita lihat, df -h menunjukkan bahwa kumpulan 8GB kami sekarang telah dikurangi menjadi 4GB, karena 4GB digunakan untuk menyimpan informasi paritas dua kali. Dengan perintah "zpool status", kita melihat bahwa pool kita menggunakan RAID-Z2 sekarang.
Langkah 4 - Simulasikan Kegagalan Disk
Pada langkah ini, kami akan mensimulasikan kegagalan disk yang parah (yaitu salah satu HDD di zpool berhenti berfungsi).
Buat file di poolz2, dan pastikan kita dapat mengaksesnya.
# echo "Hanya Uji"> /poolz2/test.txt
# cat /poolz2/test.txt
Hanya Uji
Sebelum mensimulasikan kegagalan:periksa status poolz2 dan pastikan statusnya Online dan status semua disk Online.
Kegagalan disimulasikan dengan menulis data acak dengan perintah dd ke /dev/sdb .
# dd if=/dev/urandom of=/dev/sdb bs=1024 count=20480
# zpool scrub poolz2
# zpool status
pool:poolz2
state :ONLINE
status:Satu atau beberapa perangkat mengalami kesalahan yang tidak dapat dipulihkan. Sebuah
telah dilakukan untuk memperbaiki kesalahan tersebut. Aplikasi tidak terpengaruh.
tindakan:Tentukan apakah perangkat perlu diganti, dan hapus kesalahan
menggunakan 'zpool clear' atau ganti perangkat dengan 'zpool replace'.
lihat:http://zfsonlinux.org/msg/ZFS-8000-9P
pemindaian:scrub diperbaiki 17K dalam 0j0m dengan 0 kesalahan pada Sel 8 Des 22:37:49 2015
config:
Nama Negara Baca Tulis Cksum
Poolz2 Online 0 0 0
Raidz2-0 Online 0 0 0
SDB Online 0 0 25
SDC Online 0 0 0
SDD Online 0 0 0
sde ONLINE 0 0 0
kesalahan:Tidak ada kesalahan data yang diketahui
Sekarang kita dapat melihat bahwa satu atau lebih disk mengalami kesalahan yang tidak dapat dipulihkan, jadi kami harus mengganti disk. Dalam hal ini, kami mengganti /dev/sdb disk dengan /dev/sdf.
# zpool replace poolz2 sdb sdf
# zpool status
pool:poolz2
state:ONLINE
scan:reslivered 49,5K dalam 0j0m dengan 0 kesalahan pada Sel 8 Des 22:43:35 2015
Config:
Nama Negara Baca Tulis Cksum
Poolz2 Online 0 0 0
RAIDZ2-0 Online 0 0 0
SDF Online 0 0 0
SDC Online 0 0 0
SDD ONLINE 0 0 0
SDE Online 0 0 0
Kesalahan:Tidak ada kesalahan data yang diketahui
Setelah kami mengganti /dev/sdb dengan /dev/sdf, kesalahan tersebut hilang dan kami masih dapat mengakses file pengujian yang telah kami buat sebelumnya.
# cat /poolz2/test.txt
Hanya Tes
Sampai langkah ini, kita tahu tentang cara membuat dan mengonfigurasi zpool.
Langkah 5 - Buat dan konfigurasikan sistem file ZFS
Pada langkah berikutnya, kita akan mempelajari cara membuat dan mengonfigurasi sistem file ZFS.
# daftar zfs
NAMA YANG DIGUNAKAN TERSEDIA REFER MOUNTPOINT
poolz2 105K 3.83G 26.1K /poolz2
Kami sudah memiliki satu sistem file ZFS, ini otomatis ditambahkan saat kami membuat zpool. Sekarang kita akan membuat sistem file ZFS lainnya.
# zfs create poolz2/tank
# zfs list
NAME DIGUNAKAN AVAIL REFER MOUNTPOINT
poolz2 132K 3.83G 26.1K /poolz2
poolz2 3.83 25.4K 3.83 /poolz2/tank
# df -h | grep poolz2
poolz2 3.9G 128K 3.9G 1% /poolz2
poolz2/tank 3.9G 128K 3.9G 1% /poolz2/tank
Sangat mudah bukan? Kami membuat sistem file ZFS baru bernama tank dan memasangnya secara otomatis sebagai /poolz2/tank.
Bagaimana cara membuat mountpoint khusus untuk sistem file ZFS? Gunakan perintah di bawah ini:
# zfs buat poolz2/data -o mountpoint=/data
# df -h | grep poolz2
poolz2 3.9G 0 3.9G 0% /poolz2
poolz2/tank 3.9G 0 3.9G 0% /poolz2/tank
poolz2/data 0 3.9G
Bagaimana cara memodifikasi mountpoint yang ada? Kita dapat melakukannya dengan perintah di bawah ini:
# zfs set mountpoint=/tank poolz2/tank
# df -h | grep poolz2
poolz2 3.9G 0 3.9G 0% /poolz2
poolz2/data 3.9G 0 3.9G 0% /data
poolz2/tank 3.9G 0 3.9G 0 /tank pra>Untuk memasang dan melepas sistem file, gunakan perintah di bawah ini:
# zfs melepas /data
# df -h | grep poolz2
poolz2 3.9G 0 3.9G 0% /poolz2
poolz2/tank 3.9G 0 3.9G 0% /tank# zfs mount poolz2/data
# df -h | grep poolz2
poolz2 3.9G 0 3.9G 0% /poolz2
poolz2/tank 3.9G 0 3.9G 0% /tank
poolz2/data 3.9G 0 3.9G 0 pra>Menghapus sistem file zfs sangat mudah, kita dapat menggunakan perintah zfs destroy untuk itu.
# zfs menghancurkan poolz2/data
# zfs list
NAME DIGUNAKAN AVAIL REFER MOUNTPOINT
poolz2 152K 3.83G 26.1K /poolz2
poolz2 3.83G 25.4K 3.83G /tankSistem file /data hilang.
Kesimpulan
Sistem file ZFS adalah sistem file baru yang revolusioner yang secara mendasar mengubah cara sistem file dikelola pada sistem operasi mirip Unix. ZFS menyediakan fitur dan manfaat yang tidak ditemukan di sistem file lain yang tersedia saat ini. ZFS kuat, skalabel, dan mudah dikelola.
Cara mengkompilasi dan menginstal Bitcoin Core di Debian Wheezy Cara Mendapatkan pembaruan LTS untuk Debian 6 (Squeeze)Debian