Zfs fayl sistemini açmaqdan daha çox. Linux-da ZFS Fayl Sistemini necə istifadə etmək olar

Bu günlərdə adi fayl sistemlərindən daha geniş funksionallığa malik yeni nəsil fayl sistemləri getdikcə daha çox populyarlıq qazanır. Bu fayl sistemlərindən bəziləri Btrfs və ZFS-dir.Onların hər ikisi artıq kifayət qədər stabilləşib və istifadəçilər tərəfindən fəal şəkildə istifadə olunur. Bir çox istifadəçi üçün məlumatların təhlükəsizliyi çox vacibdir və bu cür fayl sistemləri onu ən yaxşı şəkildə təmin edə bilər.

Əvvəlki məqalələrdən birində baxdıq. Bugünkü məqaləmizdə ZFS-ə diqqət yetirəcəyik; bu fayl sistemləri istifadə və məqsədlərinə görə oxşardır, lakin bəzi fərqlərə malikdir. Bu fayl sistemini paylamanıza necə quraşdırmağı, onu konfiqurasiya etməyi və gündəlik işlərdə istifadə etməyi nəzərdən keçirəcəyik.

ZFS məntiqi həcm meneceri ilə birləşdirilmiş fayl sistemidir.Fayl sistemi açıq mənbəli Ümumi İnkişaf və Dağıtım Lisenziyası (CDDL) altında buraxılmışdır. O, yüksək performanslı serverlər üçün nəzərdə tutulmuşdu, ona görə də o, artıq anlıq görüntüləri və məlumatların klonlanmasını dəstəkləyirdi. Lakin Oracle onu aldıqdan sonra mənbə kodu bağlandı və cəmiyyət OpenZFS adı altında ən son mövcud versiyanın forkunu yaratdı. İndi quraşdırıla və istifadə edilə bilən bu fayl sistemidir.

ZFS fayl sistemi belə fayl sistemlərinin adi imkanlarına malikdir. Bu, sadəcə olaraq, bir bölmənin və fayl ölçüsünün böyük ölçüsüdür, o, faylları birdən çox cihazda saxlamaq, məlumat üçün yoxlama məbləğlərini yoxlamaq və tez şifrələmək, həmçinin məlumatların üzərinə yazılmadığı zaman COW rejimində yeni məlumatları yazmaq qabiliyyətini dəstəkləyir. , lakin ani görüntülər çəkməyə imkan verən yeni yerə yazılmışdır.

Xüsusiyyətlər Btrfs-ə çox bənzəyir, lakin bəzi fərqlər var. Btrfs-də siz son snapshotdan sonra dəyişdirilmiş bütün fayllara baxa bilərsiniz. İkinci fərq Btrfs-də zvol məntiqi blokların olmamasıdır.

ZFS quraşdırılması

Ubuntu-nun son versiyalarında ZFS fayl sistemi rəsmi depo və quraşdırma diskinə əlavə edilmişdir. Buna görə də, onu quraşdırmaq üçün bir neçə əmri yerinə yetirmək kifayətdir:

sudo apt install -y zfs

Digər paylamalarda. məsələn, CentOS və ya Fedora vəziyyət bir az daha mürəkkəbdir, əvvəlcə rəsmi repozitoriya əlavə etməli, sonra zfs və kommunal proqramlar və kernel modulları dəsti quraşdırmalısınız:

sudo yum quraşdırın http://download.zfsonlinux.org/epel/zfs-release.el7_3.noarch.rpm
$ sudo yum zfs quraşdırın

Sonra qalan şey bu fayl sistemini dəstəkləyən kernel modulunun yüklənməsini aktivləşdirməkdir:

sudo modprobe zfs

Fayl sistemi artıq quraşdırılıb və istifadəyə hazırdır. Sonra bölmələri seçməli və onlar üzərində fayl sistemləri yaratmalıyıq. Zpool yardım proqramı zfs-i konfiqurasiya etmək üçün istifadə olunur, lakin əvvəlcə onun sintaksisi və imkanlarına nəzər salaq. Fayl sistemi bir neçə bölmədə və ya sabit diskdə yerləşə bilər, buna görə də nüvə səviyyəsində ümumi hovuz (yığın) formalaşır və bölmələr artıq ona qoşulur. Burada LVM həcm qrupu ilə bənzətmə çəkə bilərik.

zpool əmri

Bu ZFS bölmələrini və funksionallığını idarə etmək üçün əsas vasitədir, ona görə də onu mənimsəməyiniz vacibdir. Komandanın ümumi sintaksisi olduqca sadədir, lakin onun öz sintaksisi və parametrləri olan bir çox alt əmrləri var:

$ zpool komanda parametrləri cihaz seçimləri

Artıq dediyim kimi, hər bir əmr üçün parametrlər və seçimlər fərqlidir və cihaz sabit diskdə hovuz və ya fiziki bölmə ola bilər. İndi bir az oriyentasiya əldə etmək üçün əsas əmrlərə və onların məqsədinə baxaq və nümunələrdən istifadə edərək daha ətraflı parametrlərə baxacağıq:

  • əlavə edin- mövcud hovuza bölmə əlavə etmək;
  • əlavə edin- fayl sistemi hovuzuna bölmə və ya sabit disk əlavə etmək;
  • təmiz- bütün disk səhvlərini silin;
  • yaratmaq- virtual disklərin yerləşdiriləcəyi fiziki bölmədən yeni hovuz yaratmaq;
  • məhv etmək- zfs bölmə hovuzunu silin;
  • ayırmaq- fiziki arakəsməni hovuzdan ayırın;
  • hadisələr- zfs modulu tərəfindən göndərilən nüvə mesajlarına baxmaq;
  • ixrac- hovuzu başqa sistemə köçürmək üçün ixrac etmək;
  • almaq- hovuz parametrlərinə baxmaq;
  • təyin edin- dəyişənin qiymətini təyin etmək;
  • tarix- zfs komanda tarixçəsini göstərin;
  • idxal- idxal hovuzu;
  • iostat- seçilmiş zfs hovuzu üçün I/O statistikasını göstərmək;
  • siyahı- bütün hovuzların siyahısını göstərmək;
  • oflayn/onlayn- fiziki cihazı söndürün / yandırın, məlumatlar orada saxlanılır, lakin onu oxumaq və ya dəyişdirmək mümkün deyil;
  • çıxarın- hovuzdan cihazı çıxarın;
  • əvəz et- bütün məlumatları köhnə cihazdan yenisinə köçürün;
  • ovuşdurmaq- bütün məlumatlar üçün yoxlama məbləğlərinin yoxlanılması;
  • status- hovuz vəziyyətini göstərin.

Bunlar istifadə edəcəyimiz bütün əsas əmr seçimləri idi. İndi zfs-nin qurulması və bölmələrin idarə edilməsi nümunələrinə baxaq.

ZFS-dən necə istifadə etmək olar

ZFS-nin qurulması Btrfs-dən çox da fərqlənmir, bütün əsas addımlar çox sadədir, özünüz görəcəksiniz.

Fayl Sisteminin yaradılması

Əvvəlcə, artıq yaradılmış ZFS hovuzlarının olub olmadığını görək. Bunu etmək üçün aşağıdakı əmri yerinə yetirin:

Bu fayl sistemini ilk dəfə quraşdırırsınızsa, burada boş siyahı olacaq. İndi mövcud bölmə əsasında hovuz yaradaq, /dev/sda6 bölməsindən istifadə edəcəyik.

sudo zpool create -f pool0 /dev/sda6

Baxmayaraq ki, yalnız bir bölməni deyil, bütün diski istifadə edə bilərsiniz. İndi hovuzların siyahısına yenidən baxın:

Sonra status əmrindən istifadə edərək hovuzumuzun vəziyyətinə baxırıq, burada daha ətraflı məlumat göstərilir. Bir neçə diskiniz varsa, RAID massivini elə konfiqurasiya edə bilərsiniz ki, məlumatlar bir bölmədə saxlanmasın, lakin sinxron şəkildə bir neçə hissəyə kopyalansın, bu, performansı bir neçə dəfə artıra bilər.

sudo zpool hovuz yaradır0 zraid /dev/sda /dev/sdb /dev/sdc

Nəzərə alın ki, disklər eyni bölməyə malik olmalıdır. Əgər RAID-ə ehtiyacınız yoxdursa, ikinci diskə müntəzəm yansıtma qura bilərsiniz. Bu, məlumatların saxlanmasının etibarlılığını artırır:

sudo zpool pool0 güzgü sda sdb yaradır

İndi məlumatlar hər iki diskə yazılacaq. Eyni şeyi arakəsmələrlə də etmək olar, amma burada heç bir mənası yoxdur, çünki sabit disk dolursa, siz məlumatları itirəcəksiniz və heç bir performans artımı görməyəcəksiniz. Siz hətta fayl sistemlərini yaratmaq üçün fayllardan istifadə edə bilərsiniz.

Siz hovuza yeni sabit disk və ya bölmə əlavə edə bilərsiniz:

sudo zpool pool0 /dev/sdd əlavə edin

Və ya cihazı hovuzdan çıxarın:

sudo zpool hovuzu ayırın0 /dev/sdd

Hovuzu silmək üçün məhv əmrindən istifadə edin:

sudo zpool hovuz0 məhv edir

Bölməni səhvlərə görə yoxlamaq üçün scrub əmrindən istifadə edin:

sudo zpool skrab hovuzu0

Hovuzdan istifadə statistikasına iostat əmrindən istifadə etməklə baxmaq olar:

sudo zpool iostat hovuzu0

ZFS Fayl Sistemləri

İndi yeni yaradılmış hovuzda fayl sistemləri yaratmalısınız. Gəlin üç fayl sistemi, verilənlər, fayllar və media yaradaq. Bunu etmək üçün zfs əmrindən istifadə edin:

sudo zfs pool0/data yaradır
$ sudo zfs hovuz0/fayl yaradır
$ sudo zfs pool0/media yaradır

ZFS-nin quraşdırılması

Hovuz üçün və orada yaradılmış hər bir fayl sistemi üçün bağlama nöqtəsi kök kataloqunda yaradılır. Məsələn, bizim vəziyyətimizdə montaj nöqtələri belə görünür:

Və ya bu əmrdən istifadə edə bilərsiniz:

Yaradılmış bölmələrdən biri üçün fayl sistemini ayırmaq üçün zfs umount əmrindən istifadə edin:

sudo zfs umount /pool0/data

Sonra onu geri quraşdıra bilərsiniz:

sudo zfs mount pool0/data

Fayl sistemi seçimləri

Digər şeylər arasında, ZFS fayl sisteminin müxtəlif parametrlərini konfiqurasiya edə bilərsiniz, məsələn, quraşdırma nöqtəsini və ya sıxılma üsulunu dəyişə bilərsiniz. Komandadan istifadə edərək fayl sistemi və ya hovuz üçün bütün cari parametrlərə baxa bilərsiniz:

sudo zfs bütün pool0/faylları alır

Əvvəlcə sıxılmanı aktiv edək:

sudo zfs sıxılma = gzip pool0/faylları təyin edin

Sonra yoxlama məbləğinin yoxlanılmasını deaktiv edin:

sudo zfs set checksum=off pool0/files

Quraşdırma nöqtəsinə baxaq:

sudo zfs mountpoint pool0/faylları əldə edir

Sonra bizimkini quraşdırın:

sudo zfs mountpoint=/mnt pool0/files təyin edin

İndi bölmə /mnt-də quraşdırılacaq, hər bölmə üçün parametrlər dəyişdirilə bilər.

ZFS Snapshots

zfs snapshots və ya snapshots məlumatların bərpası üçün istifadə edilə bilər. Fayl sisteminin xüsusiyyətləri sayəsində anında görüntülər yaradıla bilər. Şəkil çəkmək üçün sadəcə olaraq yazın:

sudo zfs snapshot pool0/files pool0/files@shot1

İstifadəsini bərpa etmək üçün:

sudo zfs rollback pool0/files@shot1

Şəkillərin siyahısına əmrlə baxa bilərsiniz:

sudo zfs list -t snapshot

Və lazımsız bir fotoşəkili silmək üçün:

sudo zfs destory pool0/files@shot1

nəticələr

Bu yazıda zfs fayl sisteminin necə işlədiyinə, zfs-in necə konfiqurasiya edildiyinə və ondan necə istifadə ediləcəyinə baxdıq. Bu, çox perspektivli bir fayl sistemidir, uyğunlaşa bilən və bəzi sahələrdə hətta Btrfs-i üstələyən çoxlu xüsusiyyətlərə malikdir. Ümid edirəm bu məlumat sizin üçün faydalı oldu, hər hansı bir sualınız varsa, şərhlərdə soruşun!

*nix sistemləri dünyasında ZFS və Btrfs fayl sistemləri getdikcə populyarlaşır. Bu populyarlıq çox layiqdir - sələflərindən fərqli olaraq, onlar bəzi problemlərdən məhrumdurlar və bir çox danılmaz üstünlüklərə malikdirlər. Və bir müddət əvvəl onlara sabit status verildi. Bütün bunlar məni bu yazını yazmağa vadar etdi.

XƏBƏRDARLIQ!

Burada təsvir edilən bəzi əmrlər məlumatlarınızı geri dönməz şəkildə məhv edə bilər. Enter düyməsini basmazdan əvvəl daxiletmənizi üç dəfə yoxlayın.

Ola bilsin ki, təcrübəyə keçməzdən əvvəl yeni nəsil fayl sistemlərinin nə olduğunu izah etmək lazımdır. ZFS ilə başlayacağam. Bu FS Solaris üçün hazırlanmışdır və Oracle mənbə kodunu bağladığı üçün hal-hazırda OpenZFS versiyasına daxil edilmişdir. Gələcəkdə ZFS çəngəl adlandırılacaq. ZFS-in əsas xüsusiyyətlərindən yalnız bir neçəsi:

  • fayl sisteminin maksimum ölçüsü ağlasığmaz dərəcədə böyükdür;
  • bir neçə müxtəlif cihazı birləşdirməyə imkan verən saxlama hovuzları;
  • alqoritm seçmək imkanı ilə fayl sistemi səviyyəsində yoxlamalar;
  • COW prinsipinə əsaslanaraq - yeni məlumatlar köhnələrin üzərinə yazmır, lakin digər bloklarda yerləşdirilir ki, bu da anlıq görüntülər və məlumatların təkmilləşdirilməsi kimi imkanlar açır;
  • on-the-fly məlumat sıxılma - yoxlamalar kimi, bir neçə alqoritmlər dəstəklənir;
  • fayl sistemini yenidən yükləmədən idarə etmək imkanı.

Btrfs Oracle tərəfindən ZFS-ə zidd olaraq hazırlanmağa başladı - hətta Sun satın almadan əvvəl. Mən onun xüsusiyyətlərini təsvir etməyəcəyəm - onlar, ümumiyyətlə, ZFS və Btrfs-də oxşardırlar. ZFS-dən fərqlər aşağıdakılardır:

  • fayl versiyaları üçün dəstək (Btrfs terminologiyasında nəsillər adlanır) - snapshot yaradılandan bəri dəyişmiş faylların siyahısına baxmaq mümkündür;
  • zvol üçün dəstəyin olmaması, məsələn, dəyişdirmə bölməsi yerləşdirə biləcəyiniz virtual blok cihazları - lakin bu çatışmazlıq geri dönmə cihazları ilə tam kompensasiya olunur.

ZFSonLinux təqdim edirik

ZFSonLinux-u quraşdırmaq üçün sizə 64 bitlik prosessor lazımdır (32-dir, lakin tərtibatçılar bu halda sabitlik vəd etmirlər) və müvafiq olaraq, nüvəsi ən azı 2.6.26 olan 64 bitlik paylama - Ubuntu-dan istifadə etmişəm. 13.10. Həm də kifayət qədər yaddaş olmalıdır - ən azı 2 GB. Ehtimal olunur ki, modulları və nüvəni qurmaq və tərtib etmək üçün tələb olunan əsas paketlər artıq quraşdırılıb. Əlavə paketləri yükləyin və lazımi tarballları endirin:

$ sudo apt-get quraşdırma yad zlib1g-dev uuid-dev libblkid-dev libselinux-dev parted lsscsi wget $ mkdir zfs && cd $_ $ wget http://bit.ly/18CpniI $ wget http://bit.ly/ 1cEzO0V

Biz hər iki arxivi açırıq, lakin əvvəlcə SPL - Solaris uyğunluq qatını və yalnız sonra ZFS-in özünü toplayırıq. Qeyd edim ki, ZFSonLinux-un ən son versiyasını quraşdırdığımız üçün DKMS (kernel versiyasını yenilədikdən sonra cari kernel modullarını cihaz drayverləri ilə avtomatik yenidən qurmağa imkan verən mexanizm) mövcud deyil və ləpə yenilənirsə, siz məcbur olacaqsınız. paketləri əl ilə yenidən yığın.

$ tar -xzf spl-0.6.2.tar.gz $ tar -xzf zfs-0.6.2.tar.gz $ cd spl-0.6.2 $ ./konfiqurasiya etmək $ deb-utils deb-kmod

ZFS-ni tərtib etməzdən əvvəl başlıqları quraşdırmalısınız və eyni zamanda təzə tərtib edilmiş paketlərin qalan hissəsini quraşdıracağıq:

$ sudo dpkg -i *.deb

Nəhayət, ZFS-ni yığırıq və quraşdırırıq:

$ cd ../zfs-0.6.2 $ ./konfiqurasiya $ etmək deb-utils deb-kmod $ sudo dpkg -i *.deb


Kök fayl sisteminin şifrələmə və RAIDZ yaradılması ilə ZFS-ə köçürülməsi

Deyək ki, siz təhlükəsiz, şifrələnmiş, lakin eyni zamanda xətaya dözümlü fayl sistemi istəyirsiniz. Klassik köhnə nəsil fayl sistemləri vəziyyətində, şifrələmə və xətaya dözümlülük arasında seçim etməli olacaqsınız, çünki bunlar bir qədər uyğun gəlmir. ZFS-də isə onları bir-birinə “yapışdırmaq” mümkündür. Bu fayl sisteminin cari mülkiyyət tətbiqi şifrələməni dəstəkləyir. Hovuz versiyası 28 ilə açıq tətbiq bunu dəstəkləmir - lakin heç bir şey sizə LUKS həcmi (və ya bir neçə cild) yaratmaq və onların üzərinə hovuz yerləşdirmək üçün kriptosetup-dan istifadə etməyə mane olmur. Arızaya dözümlülüyünə gəldikdə, ZFS çox diskli massivlərin yaradılmasını dəstəkləyir. Bu texnologiya RAIDZ adlanır. Onun müxtəlif variantları ona bir-üç diskin nasazlığından sağ çıxmağa imkan verir və ZFS-nin bəzi xüsusiyyətlərinə görə o, ənənəvi zolaq + paritet RAID massivlərinin əsas çatışmazlıqlarından birindən azaddır - yazma dəliyi (RAID 5 / ilə vəziyyət) RAID 6, aktiv əməliyyatlar qeydə alındıqda və söndürüldükdə, disklərdəki məlumatlar son nəticədə fərqli olur).

MƏLUMAT

Şifrələmə məlumatların işlənməsini ləngidir. Köhnə kompüterlərdə istifadə edilməməlidir.

Əlbəttə ki, hər hansı bir sisteminiz yoxdursa, bu, ən asandır - bu halda daha az əziyyət çəkməli olacaqsınız. Ancaq biz ideal bir dünyada yaşamırıq, ona görə sizə /boot bölməsi olmadan artıq quraşdırılmış sistemi LUKS həcmlərinin üstündəki RAIDZ massivinə necə köçürəcəyini söyləyəcəyəm.

Əvvəla, bu bölməni özünüz yaratmalısınız - onsuz köçürmə mümkün olmayacaq, çünki sistem sadəcə yüklənməyəcək. Sadəlik üçün fərz edək ki, diskdə Ubuntu ilə tək bölmə var və biz birinci səviyyəli RAIDZ yaratmaq istəyirik (RAID 5-in analoqu, bu, ən azı üç cihaz tələb edir, amma bunu etməkdə məqsəd görmürəm. RAIDZ evdə daha yüksək səviyyədə). Tercih etdiyiniz bölmə redaktorundan istifadə edərək, iki bölmə yaradırıq - biri 256–512 MB ölçüsündə, burada /boot yerləşəcək, digəri isə cari kökdən az olmayan ölçüsü ilə və biz sonuncu proseduru hamısında təkrarlayırıq. üç sabit disk. Komanda ilə bölmə cədvəlini yenidən oxuyaq

# partprobe /dev/disk/by-id/ata-VBOX_HARDDISK_VB203f5b52-a7ff5309

və daha kiçik bir bölmədə fayl sistemi (ext3) yaradın:

# mke2fs -j /dev/disk/by-id/ata-VBOX_HARDDISK_VB203f5b52-a7ff5309-part2 -L açılış

Əlbəttə ki, sizin vəziyyətinizdə sabit disk identifikatorları fərqli olacaq. Sonra, LUKS həcminin yerləşəcəyi bölməni şifrələməli və nəticədə RAIDZ massivinə sahib olacaq bütün digər bölmələr üçün bu proseduru təkrarlamalısınız:

# cryptsetup -h=sha512 -c=aes-cbc-essiv:sha256 -s=256 -y luksFormat /dev/disk/by-id/ata-VBOX_HARDDISK_VB203f5b52-a7ff5309-part3 # cryptsetup -h=sha512 cbc-essiv:sha256 -s=256 -y luksFormat /dev/disk/by-id/ata-VBOX_HARDDISK_VB2fdd0cb1-d6302c80-part1 # cryptsetup -h=sha512 -c=aes-cbc-essiv:sha25 -y luksFormat /dev/disk/by-id/ata-VBOX_HARDDISK_VB781404e0-0dba6250-part1

Şifrələnmiş həcmlərin qoşulması:

# cryptsetup luksOpen /dev/disk/by-id/ata-VBOX_HARDDISK_VB203f5b52-a7ff5309-part3 crypto0 # cryptsetup luksOpen /dev/disk/by-id/ata-VBOX_HARDDISK_VB2fdd-pen3cb0 #crypto8-crypt60cb1 /dev/dis k/by - id/ata-VBOX_HARDDISK_VB781404e0-0dba6250-part1 kripto2

Və ZFS hovuzu yaradın:

# zpool create -o ashift=12 zroot raidz dm-name-crypto0 dm-name-crypto1 dm-name-crypto2

Sonra, iki yuvalanmış fayl sistemi yaradırıq:

# zfs zroot/ROOT yaradır # zfs zroot/ROOT/ubuntu-1310-root yaradır

Gəlin bütün ZFS fayl sistemlərini ayıraq və bəzi fayl sistemi və hovuz xüsusiyyətlərini təyin edək:

# zfs umount -a # zfs set mountpoint=/ zroot/ROOT/ubuntu-1310-root # zpool set bootfs=zroot/ROOT/ubuntu-1310-root zroot

Nəhayət, hovuzu ixrac edirik:

# zpool ixrac zroot



Sistemin miqrasiyası və konfiqurasiyası

Əvvəlcə /boot qovluğunu şifrələnməmiş bölməyə köçürün ki, yükləyicini orada quraşdıra biləsiniz:

# mkdir /mnt/boot # mount /dev/disk/by-label/boot /mnt/boot # cp -r /boot/* /mnt/boot/ # umount /mnt/boot

Bundan sonra, grubu ayrıca /boot bölməsinə köçürəcəyik, bunun üçün xətti /etc/fstab-a əlavə edəcəyik.

# <...>LABEL=boot /boot ext3 səhvləri=remount-ro 0 0

Qrup konfiqurasiyasını quraşdırın və bərpa edin:

# grub-mkconfig -o /boot/grub/grub.cfg

Yoxlamaq üçün yenidən başladın. Hər şey qaydasındadırsa, əvvəlcə bölməni ayırmağı unutmayın, /boot kataloqunun köhnə məzmununu silin.

Ubuntu-nu klonlaşdırmağın vaxtı gəldi. Bütün klonlaşdırma prosesi məqalənin tam versiyasında təsvir edilmişdir, onu veb saytında tapa bilərsiniz ][, burada ZFS ilə əlaqəli bəzi incəliklərə də toxunacağam. ZFS hovuzundan normal yükləmə üçün bəzi initramfs skriptləri lazımdır. Xoşbəxtlikdən, onları icad etməyə ehtiyac yoxdur - onlar GitHub-dadır. Anbarı yükləyin (bütün hərəkətlər chroot-da həyata keçirilir):

# git klonu http://bit.ly/1esoc8i

Və faylları lazımi yerlərə köçürün. Etdiyim yeganə dəyişiklik rpool hovuzunu zroot ilə əvəz etmək idi. İndi hostidi /etc/hostid faylına yazmalısınız. Bunu etmək lazımdır, çünki ZFS Solaris-dən ötürülür və uyğunluq təbəqəsi bunu tələb edir:

# hostid >/etc/hostid

Nəhayət, initramfları yaratmalıyıq. Heç vaxt update-initramfs istifadə etməyin. O, mövcud faylın üzərinə yazır və çətinliklər yaranarsa, normal sistemdən yükləmə problemli olacaq. Bunun əvəzinə əmrdən istifadə edin

# mkinitramfs -o /boot/initrd.img-$(uname -r)-crypto-zfs

/boot bölməsi quraşdırılmalıdır.

Sonra gruba menyu elementi əlavə etməlisiniz. Kifayət qədər çətin bir konfiqurasiyaya görə (üç kriptovolum, bunun üstündə Linux üçün o qədər də tipik olmayan bir fayl sistemi var), bunu chroot-da etmək mümkün olmadı, ona görə də onu əsas (hazırda) sistemə buraxırıq və aşağıdakı sətirlərə bənzər bir şey əlavə edin:

# vi /etc/grub.d/40_custom menuentry "Ubuntu kripto ZFS" ( #<...>linux /vmlinuz-3.11.0-14-generic boot=zfs rpool=zroot initrd /initrd.img-3.11.0-14-generic-crypto-zfs )

Biz update-grub-u işə salın, yenidən başladın, yeni menyu elementi seçin və sevinirik.

Btrfs ilə ZFS və faydalı fəndləri tənzimləmək

Əksər hallarda ev istifadəçiləri öz FS-lərini konfiqurasiya etmirlər. Bununla belə, standart ZFS parametrləri həmişə evdə istifadə üçün uyğun deyil. İstifadəsi müəyyən bir fayl sistemi ilə işləmək üçün müəyyən bacarıq tələb edən olduqca maraqlı xüsusiyyətlər də var. Sonra mən ev ehtiyaclarına uyğun olaraq ZFS-nin incə tənzimlənməsini və bu xüsusiyyətləri təsvir edəcəyəm.

Btrfs-dən istifadə zamanı heç bir xüsusi problem müşahidə olunmur. Buna baxmayaraq, bəzi incəliklər hələ də baş verir - xüsusən də yalnız "onu qurmaq və unutmaq" deyil, yeni imkanlardan istifadə etmək istəyi varsa. Aşağıda onlardan bəziləri haqqında danışacağam.

Fayl giriş vaxtı dəyişikliklərini söndürün və SSD diskləri üçün optimallaşdırın

Bildiyiniz kimi, *nix sistemlərində hər dəfə fayllara daxil olanda onlara giriş vaxtı dəyişir. Bu, hər dəfə mediada səs yazısına səbəb olur. Eyni anda bir çox faylla işləyirsinizsə və ya SSD sürücünüz varsa, bu məqbul olmaya bilər. Klassik fayl sistemlərində atime yazısını söndürmək üçün siz noatime seçimini mount əmr seçimlərinə və ya /etc/fstab-a əlavə etməli idiniz. ZFS-də onu söndürmək üçün aşağıdakı əmrdən istifadə olunur (əlbəttə ki, sizin vəziyyətinizdə FS fərqli ola bilər):

# zfs təyin olundu atime=off zroot/ROOT/ubuntu-1310-root

Btrfs-də yuxarıda qeyd olunan noatime variantına əlavə olaraq ssd seçimi və daha optimallaşdıran ssd_spread var. Onlardan birincisi, kernel 2.6.31-dən başlayaraq, adətən avtomatik quraşdırılır, ikincisi ucuz SSD diskləri üçün nəzərdə tutulub (onların işini sürətləndirir).

ZFS - faylın təkrarlanması

Çox vacib məlumatlarla işləyərkən bəzən elektrik enerjisinin kəsiləcəyi və ya sərt disklərdən birinin sıradan çıxacağı barədə qorxulu bir fikir yaranır. Birincisi, Rusiya şəraitində çox mümkündür, ikincisi, çətin olsa da, baş verir. Xoşbəxtlikdən, ZFS tərtibatçıları bununla bir dəfədən çox qarşılaşmış və məlumatların təkrarlanması üçün bir seçim əlavə etmişlər. Bu halda, mümkünsə, fayllar müstəqil disklərə yerləşdirilir. Tutaq ki, sizdə FS zroot/HOME/home-1310 var. Təkrarlanma bayrağını təyin etmək üçün aşağıdakı əmri yazın:

# zfs set nüsxələri=2 zroot/HOME/home-1310

Üstəlik, əgər iki nüsxə kifayət etməzsə, 3 rəqəmini göstərə bilərsiniz. Bu halda, üçlü ehtiyat həyata keçirilir və bu nüsxələrin yerləşdiyi üç sərt diskdən ikisi uğursuz olarsa, ZFS onları yenə də bərpa edəcək.

ZFS-də avtomatik quraşdırmanın söndürülməsi

Hovuzu birləşdirərkən, standart olaraq bütün iç içə fayl sistemləri avtomatik olaraq quraşdırılır. Bu, bəzi çaşqınlığa səbəb ola bilər, çünki, məsələn, yuxarıda göstərilən konfiqurasiya vəziyyətində istifadəçinin nə zroot, nə də zroot/ROOT-a girişi lazım deyil. Aşağıdakı iki əmrdən istifadə edərək avtomatik quraşdırmanı söndürmək mümkündür (bu halda):

# zfs set canmount=noauto zroot/ROOT # zfs set canmount=noauto zroot

Məlumatların sıxılması

ZFS həmçinin məlumatların sıxılmasını dəstəkləyir. Şifrələnmiş həcmlərdə bunun yalnız entropiyanı artırmaq mənası var (və bu fakt deyil), lakin ümumiyyətlə, yavaş media üçün sıxılma performansı yaxşılaşdırır və disk yerini əhəmiyyətli dərəcədə qənaət edə bilər. Eyni zamanda, indi sərt disklərin tutumu artıq terabaytlarla ölçülür, çətin ki, kimsə həqiqətən yerə qənaət etməlidir və bu, performansa və RAM istehlakına daha çox təsir göstərir. Əgər ehtiyacınız varsa, onu aşağıdakı kimi aktivləşdirə bilərsiniz:

# zfs sıxılma = zroot/ROOT/var-log-da təyin etdi

Btrfs-də sıxılmanı aktivləşdirmək üçün siz /etc/fstab-a sıxışdırma seçimini qoymalısınız.

ZFS-də snapshotların avtomatik yaradılması

Bildiyiniz kimi, ZFS sizə anlıq görüntülər yaratmağa imkan verir. Bununla belə, onları qələmlərlə yaratmaq tənbəllikdir və sadəcə bunu unutmaq ehtimalı var. Solaris-də bu proseduru avtomatlaşdırmaq üçün Time Slider xidməti var, lakin bu, fəlakətdir! - ZFS funksiyalarından istifadə etsə də, onun bir hissəsi deyil, ona görə də ZFSonLinux-a daxil deyil. Ancaq narahat olmayın: Linux üçün də onları avtomatik yaratmaq üçün bir skript var. Onu yükləyək və lazımi hüquqları təyin edək:

# wget -O /usr/local/sbin/zfs-auto-snapshot.sh http://bit.ly/1hqcw3r # chmod +x /usr/local/sbin/zfs-auto-snapshot.sh

Gəlin əvvəlcə snapshotlar üçün prefiksi dəyişdirək, çünki standart olaraq o, xüsusilə "deyilmir". Bunu etmək üçün skriptdəki opt_prefix parametrini zfs-auto-snap-dən snapshot-a dəyişdirin. Sonra, bəzi fayl sistemi dəyişənlərini təyin edək:

# zfs set com.sun:auto-snapshot=true zroot/ROOT/ubuntu-1310-root # zfs set snapdir=görünən zroot/ROOT/ubuntu-1310-root

Birinci parametr skript üçün lazımdır, ikincisi isə skript üçün də lazım olan anlıq görüntülərə birbaşa çıxış imkanı verir.

İndi cron üçün skript yarada bilərsiniz (/etc/cron.daily/autosnap). Hər gün snapshotlar yaratmalı və onları bir ay saxlamalı olduğunuz halı nəzərdən keçirin:

#!/bin/bash ZFS_FILESYS="zroot/ROOT/ubuntu-1310-root" /usr/local/sbin/zfs-auto-snapshot.sh --quiet --syslog --label=daily --keep=31 " $ZFS_FILESYS"

Yaradılmış şəkillərə baxmaq üçün zfs list -t snapshot əmrindən, vəziyyəti bərpa etmək üçün isə zfs rollback snapshot_name-dən istifadə edin.

ZFS - mürəkkəb bir nümunə

Aşağıda müxtəlif məqsədlər üçün hovuzda çoxlu fayl sistemi yaradan və ZFS-in çevikliyini nümayiş etdirən əmrlər verilmişdir.

# zfs yaratmaq -o sıxılma=on -o mountpoint=/usr zroot/ROOT/usr # zfs yaratmaq -o sıxılma=on -o setuid=off -o mountpoint=/usr/local /zroot/ROOT/usr-local # zfs yaratmaq -o sıxılma=on -o exec=off -o setuid=off -o mountpoint=/var/crash zroot/ROOT/var-crash # zfs yaratmaq -o exec=off -o setuid=off -o mountpoint=/var /db zroot/ROOT/var-db # zfs yaratmaq -o sıxılma=on -o exec=off -o setuid=off -o mountpoint=/var/log zroot/ROOT/var-log # zfs yaratmaq -o sıxılma=gzip -o exec=off -o setuid=off -o mountpoint=/var/mail zroot/ROOT/var-mail # zfs yaratmaq -o exec=off -o setuid=off -o mountpoint=/var/run zroot/ROOT/ var-run # zfs yaratmaq -o exec=off -o setuid=off -o nüsxələr=2 -o mountpoint=/home zroot/HOME/home # zfs yaratmaq -o exec=off -o setuid=off -o surətlər=3 -o mountpoint=/home/rom zroot/HOME/home-rom

Btrfs defraqmentasiyası

Btrfs-də defraqmentasiya o qədər də lazım deyil, lakin bəzi hallarda işğal edilmiş yeri boşaltmağa imkan verir. Bu, yalnız quraşdırılmış sistemdə həyata keçirilə bilər. Qeyd edirəm ki, defraqmentasiya zamanı məlumatlara giriş qorunur - həm oxumaq, həm də yazmaq. Defraqmentasiya prosedurunu başlamaq üçün aşağıdakı əmrdən istifadə edin:

# btrfs fayl sistemi defrag /

Köhnə nüvələrdə bu prosedur snapşotlar və təkmilləşdirilmiş məlumatlar kimi bütün COW nüsxələrini sildi, ona görə də onları 2.6.37-dən köhnə nüvələrdə istifadə etsəniz, defraqmentasiya yalnız sizə zərər verəcək.

Btrfs-də RAID

ZFS-də olduğu kimi, Btrfs çoxcildli massivləri dəstəkləyir, lakin ZFS-dən fərqli olaraq onlar klassik adlanır. Bununla belə, hazırda yalnız RAID 0, RAID 1 və hər ikisinin birləşməsi dəstəklənir, RAID 5 hələ də alfa testindədir. Yeni RAID 10 massivi yaratmaq üçün sadəcə bu əmrdən istifadə edin (cihazlarınızla):

# mkfs.btrfs /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

Yaxşı, mövcud fayl sistemini RAID-ə çevirmək lazımdırsa, bunun üçün əmrlər var:

# btrfs cihazı əlavə edin /dev/sdb1 /dev/sdc1 /dev/sdd1 / # btrfs balans başlanğıcı -dconvert=raid10 -mconvert=raid10 /

Birinci komanda fayl sisteminə cihazları əlavə edir, ikincisi isə bu həcmlər dəstini RAID 10 massivinə çevirmək üçün bütün məlumatları və metaməlumatları balanslaşdırır.

Btrfs görüntüləri

Təbii ki, Btrfs snapshotları dəstəkləyir - və adi snapshotlara əlavə olaraq, yazma imkanları olan snapshotlar mövcuddur (üstəlik, onlar standart olaraq yaradılmışdır). Anlık görüntülər yaratmaq üçün aşağıdakı əmrdən istifadə edin:

# btrfs subvol snap -r / /.snapshots/2013-12-16-17-41

Həm əllə, həm də avtomatik rejimdə snapşotların yaradılması haqqında daha çox məlumatı ][ jurnalının 2013-cü il aprel sayında dərc olunmuş “Təhlükəsizlik yastığı” məqaləsində tapa bilərsiniz. Burada sizə məlumat verəcəyəm, əgər bir şəkiliniz varsa, onun yaradılmasından sonra hansı faylların dəyişdiyini izləyə bilərsiniz. Bu məqsədlə Btrfs-də sözdə fayl generasiyası var. Bu xüsusiyyət daxili məqsədlər üçün istifadə olunur, lakin son dəyişikliklərin siyahısını nəzərdən keçirməyə imkan verən bir əmr var - biz ondan istifadə edəcəyik. Əvvəlcə mövcud fayl nəslini öyrənirik:

# btrfs subvol tap-yeni / 99999999

Əgər belə bir nəsil yoxdursa (bu faktiki olaraq müəyyəndir), sonuncu istehsal olunacaq. İndi eyni əmri snapshotda yerinə yetirək:

# btrfs subvol find-new /.snapshots/2013-12-17-14-28 99999999

Əgər nəsillər fərqlidirsə və onlar da olacaqsa, o zaman snapshot yaradılandan sonra hansı faylların dəyişdiyinə baxırıq. Mənim vəziyyətimdə əmr belə idi:

#btrfs subvol find-new/96 | awk "( çap $17 )" | sort | unikal

NILFS2 COW dəstəyi ilə başqa bir fayl sistemidir

Kernel 2.6.30 ilə başlayaraq, Linux başqa bir FS - NILFS2 üçün dəstək əlavə etdi. Bu abbreviatura log-strukturlaşdırılmış fayl sisteminin yeni tətbiqi deməkdir. Bu FS-nin əsas xüsusiyyəti ondan ibarətdir ki, bir neçə saniyədə bir dəfə orada nəzarət nöqtələri avtomatik olaraq yaradılır - bir fərqlə anlıq görüntülərin təxmini analoqu: bir müddət sonra onlar zibil kollektoru tərəfindən silinir. Bununla belə, istifadəçi ya yoxlama nöqtəsini snapshota çevirə bilər, nəticədə o, zibil yığan şəxs üçün görünməz olur və ya əksinə. Beləliklə, NILFS2 hər hansı dəyişikliklərin qeydə alındığı bir növ “Vikipediya” hesab edilə bilər. Bu xüsusiyyətə görə - hər hansı yeni məlumatı mövcud olanların üstünə deyil, yeni bloklara yazmaq - SSD diskləri üçün mükəmməldir, bildiyiniz kimi, məlumatların üzərinə yazmaq xoş deyil.

Bəli, NILFS2 ZFS və ya Btrfs qədər məşhur deyil. Ancaq bəzi hallarda onun istifadəsi daha haqlı olacaqdır.

Nəticə

Mən subyektiv görünə bilərəm, amma ZFS, Btrfs ilə müqayisədə qalib gəlir. Birincisi, Btrf-lərin bəzi xüsusiyyətləri beş yaşdan yuxarı olmasına baxmayaraq hələ də körpəlik mərhələsindədir. İkincisi, ZFS, bütün digər şeylər bərabərdir, daha çox sınaqdan keçirilir. Üçüncüsü, ZFS ilə işləmək üçün daha çox alətlər və onun imkanları var.

Digər tərəfdən, ZFS nə qədər yaxşı olsa da, lisenziyalaşdırma səbəblərinə görə onun heç vaxt əsas nüvəyə daxil olması ehtimalı azdır. Beləliklə, başqa bir rəqib görünməsə, Btrfs istifadə etməli olacaqsınız.

Facebook və Btrfs

2013-cü ilin noyabrında Btrfs inkişaf qrupunun lideri Chris Mason Facebook-a keçdi. btrfs-növbəti filialının xidmətçisi Cozef Batsik də eyni şeyi etdi. Onlar şirkətin aşağı səviyyəli inkişaf üzrə ixtisaslaşan departamentinin bir hissəsi oldular, burada indi Linux nüvəsi üzərində işləyirlər - xüsusən də Btrfs üzərində işləyirlər. Tərtibatçılar həmçinin bildirdilər ki, Facebook Btrfs-in inkişafında maraqlıdır, ona görə də cəmiyyətin narahat olması üçün heç bir əsas yoxdur.

ZFS fayl sistemi inanılmaz dərəcədə populyardır. Nəticədə, müəssisədəki bir çoxları ona and içir və trilyonlarla bayt məlumatların yerləşdirilməsi üçün ondan istifadə edirlər. Populyarlığına baxmayaraq, Linux istifadəçiləri ondan həzz ala bilməyəcəklər. Bunun əvəzinə, onu yoxlamaq və əsas yaddaş fayl sistemi kimi istifadə etmək istəyənlər onu quraşdırmalı olacaqlar.

ZFS-nin quraşdırılması digər fayl sistemlərindən bir qədər fərqlidir və istifadə etdiyinizdən asılı olaraq bir az nou-hau tələb edə bilər. Bu fayl sistemində yenisinizsə, ən yaxşısı Ubuntu marşrutu ilə getməkdir. Ubuntu 16.04-dən başlayaraq Canonical ZFS ilə işi asanlaşdırır. Daha yaxşısı, Ubuntu asan quraşdırma və çox etibarlı olduğu bilinən qurma prosesi ilə Linux-da ZFS-in ən təhlükəsiz tətbiqidir (digər Linux paylamalarının ZFS-ni pozmaq riski yüksəkdir).

ZFS fayl sistemini quraşdırmaq üçün təlimatlara əməl edin və bu dərsliyə davam etməzdən əvvəl onları necə işə salmağı öyrənin.

Qeyd. ZFS-dən tək bir sabit disk üçün istifadə etmək mümkün olsa da, bu yaxşı fikir deyil və çox güman ki, siz bu fayl sistemini əla edən bütün funksiyaları əldən verəcəksiniz. Fayl sisteminin məqsədi bir çox sabit diskdə məlumatları uzatmaqla ehtiyat yaratmaqdır. Davam etməzdən əvvəl ZFS üçün 1-dən çox sabit diskiniz olduğundan əmin olun.

ZFS-nin qurulması

ZFS fayl sistemi bir böyük yaddaş mərkəzi yaratmaq üçün bir çox müxtəlif sabit diskləri birləşdirərək işləyir. Çox mürəkkəb səslənir və belədir. Bununla belə, nəticə çox yerlə əla saxlamadır.

Yeni ZFS fayl sistemi yaratmaq sadəcə Gparted bölmə redaktorunu açmaqdan bir az daha mürəkkəbdir. Bunun əvəzinə, onunla komanda xətti səviyyəsində qarşılıqlı əlaqə qurmalı olacaqsınız. Terminal pəncərəsində işə salın lsblk komanda. "Siyahı bloku" əmrinin icrası Linux kompüterinizdəki bütün sürücülərin siyahısını verəcəkdir.

Keçin və Z-hovuzunuz üçün hansı sabit disklərdən istifadə edəcəyinizə qərar verin və adları yadda saxlayın. Bu dərslikdə ZFS hovuzunda olan üç diskimiz /dev/sdb, /dev/sdc/dev/sdd.

Daha sonra Z-hovuzu üçün seçilmiş sabit diskləri tamamilə silməlisiniz ki, onlar artıq məlumatlara malik olmasın. İstifadə ggəmri verin, disklərin hər birini yenidən yazın. Bir az vaxt aparacaq.

Qeyd: dəyişdirin /dev/sdx istifadə edərək tapılan disk ID ilə lsblk komanda ( S.D.B. və s.).

Sudo dd əgər = /dev/sıfır = /dev/sdX bs = 8M

Nə vaxt gg bitir, başlayır FDISK komanda. Fdisk-i işə salmaq hər biri üçün fayl sistemi məlumatları daxil olmaqla, sabit disklər haqqında çoxlu məlumat göstərəcək. Oxunuşları nəzərdən keçirin və çıxardığınız sürücülərin heç birində fayl sistemi olmadığından əmin olun. Bu addım vacibdir, çünki ZFS ənənəvi bölmə formatından istifadə etmir.

Gəmilər FDISK-l

Göstərici xətti varsa FDISK oxumaq yaxşı görünür, yeni ZFS Z-hovuzu yaratmaq təhlükəsizdir. Əsas Z hovuzunu qurmaq üçün bu addımları yerinə yetirin:

Sudo zpool create -f newzpool /dev/sdb dev/sdc /dev/sdd

Əsas quraşdırma əksər istifadəçilərə saxlama ehtiyaclarını ödəməyə imkan verəcək. Bununla belə, məlumatlarını qiymətləndirən və qorunmağa ehtiyacı olanlar belə bir əsas quraşdırma ilə getməməlidirlər. Bunun əvəzinə, RaidZ ilə ZFS hovuzu yaratmağı düşünün.

RaidZ-dən ZFS hovuzunuzla birlikdə istifadə çoxlu ehtiyat nüsxələri ilə məlumatlarınızın lazımsız olmasını təmin edir. RaidZ ilə ZFS hovuzu yaratmaq üçün aşağıdakıları yerinə yetirin:

Sudo zpool create -f newzpool raidz /dev/sdb dev/sdc /dev/sdd

Yeni ZFS yaddaş hovuzuna fayl əlavə etmək üçün Fayl menecerini açın və fayl sisteminin kökünə keçin. Faylları ZFS Zpool adlı qovluğa yerləşdirin.

ZFS Zpool-a disklər əlavə edin

ZFS çoxlu məlumat saxlamaq üçün nəzərdə tutulmuşdur, lakin bu, orijinal disklərinizin doldurulmayacağı demək deyil. Daha çox saxlama yerinə ehtiyacınız olacaq bir vaxt gələcək. Xoşbəxtlikdən, ZFS arakəsmələrdən istifadə etmədiyi üçün sistemə daha çox yaddaş əlavə etmək asandır.

Bu nümunədə Zpool-a daha iki disk əlavə edəcəyik (/dev/sde və /dev/sdf).

Qeyd: ZFS quraşdırmanız RaidZ-dən istifadə etmirsə, onu əmrdən çıxarın.

Sudo zpool add -f newzpool raidz /dev/sde /dev/sdf

ZFS hovuzunu silin

Çox vaxt ZFS həcmləri pozulur və yararsız hala düşür. Bu baş verdikdə, yaddaş hovuzunu silməli ola bilərsiniz. Yaddaş hovuzunu silmək üçün terminalı açın və istifadə edin zfs məhv edir komanda.

Sudo zpool newzpool-u məhv edir

Qaç zpool məhv etmək yaddaş hovuzunuzda nə qədər məlumat olduğundan asılı olaraq kifayət qədər uzun vaxt tələb edir. Terminal yenidən istifadə edildikdə Zpoolun tamamilə məhv edildiyini öyrənəcəksiniz.

ZFS Statusunu yoxlayın

İstifadə edərək Zpool statusunuzu yoxlamaq üçün sürətli bir yol zpool statusu komanda. Bununla, istifadəçilər ZFS həcminin əsas oxunuşunu, bunu necə etdiyini və hər hansı səhvlərin olub olmadığını görə bilərlər. Vəziyyəti yoxlamaq üçün aşağıdakı əmri yerinə yetirin.

Əvvəlki yazılarımda zfs haqqında dəfələrlə qeyd etmişəm. Üstəlik, bunun uşaq standartlarından kənarda həm yaddaş, həm də prosessor tələb etdiyi ortaya çıxdı. Sual qalır - niyə? Dərhal deyəcəyəm ki, özümü tam kimi göstərmirəm və s. Vikipediyada zfs-in nə olduğuna baxa bilərsiniz. Daha ciddi maraqlananlara google-da axtarmağı məsləhət görürəm zfs idarəetmə təlimatı(deyəsən rus dilindədir). Məqsədim niyə evdə birdən-birə korporativ səviyyəli fayl sisteminin olduğunu izah etməkdir. Qeyd Oxucunun, xüsusən də yazının ikinci hissəsinin, məsələn, disk massivlərinin nə olduğunu əminliklə başa düşməsi gözlənilir. RAID5. Heç bir anlayış yoxdursa, evdə belə massivlərin qurulmasına və bu mətni oxumağa dəyər olması ehtimalı azdır.


1. Fayl sisteminin bütövlüyü. Hər kəs fayl sisteminin təmir edilməli olduğu bir vəziyyətlə qarşılaşdı. Uğurlu və ya çox uğurlu deyil. zfs elə qurulub ki, hətta Windows chkdsk və ya Linux fsck kimi bir yardım proqramı da yoxdur. Fayl sisteminin uyğunsuz bir vəziyyətdə sona çatdığı bir vəziyyət sadəcə mümkün deyil. Copy-on-write vasitəsilə həyata keçirilir (biz verilənləri köhnələrin üstünə yazmırıq, lakin yeni blok seçin, ora yazın, hər şey qaydasındadırsa, göstəricini köhnə verilənlərdən yeniləri ilə əvəz edirik. Daha çox məlumat üçün təfərrüatlar, Google-a baxın). Nəticədə, bir şeyin səhv vaxtda söndürülməsi və ya enerjinin kəsilməsi səbəbindən diskin məntiqi quruluşu pisləşməyəcəkdir. Yaxşı, son 10 saniyədə yazılanlar yox olacaq? (Bununla belə, disk elektriklə oynayarkən fiziki olaraq yandırıla bilər).

2. Məlumat oxuduğunuzu düşünərək zibil oxumayacağınıza əmin olun. Dəmir qüsursuzdur. Məsələn, SATA kabellərindəki kontaktlar cingildəyirsə, diskə yazılacaqlar yaddaşda olandan tamamilə fərqlidir. Və qeyd edirəm ki, heç kim bu barədə uzun müddət bilməyəcək. Peşəkar təcrübəm çapla bağlıdır. Bir dəfədən çox çıxışda ortasına qədər normal olan bir şəkil görməli oldum - sonra səs-küy yarandı. zfs hər bir məlumat bloku ilə yoxlama məbləğini saxlayır. Məlumatları oxuyarkən məbləğ avtomatik olaraq müqayisə edilir. Çox sadə görünəcək...

3. Saxlanılan məlumatların çürük olmadığına əmin olun. Bəli, məlumat saxlama zamanı pisləşməyə meyllidir. Bu, təxminən 100 il əvvəl DVD diskləri istehsalçılarının marketinqinə inananlara və onların arxivlərini onların üzərində yazanlara yaxşı məlumdur. Bu, uzun müddət hərəkətsiz qalan "soyuq" məlumatlar üçün xüsusilə vacibdir. Arxivlər, köhnə fotoşəkillər və s. Məlumatları yoxlamaq sadə görünür - onu oxumaq və yoxlama məbləğlərini müqayisə etmək lazımdır. Zfs üçün aydındır - sadəcə faylları oxuyun. Müntəzəm yoxlama üçün arxa planda hər şeyi yoxlayan bir əmr var.

4. Fayl sistemi anlıq görüntüləri. Müəyyən bir zamanda fayl sisteminin vəziyyətini xatırlamaq, bu cür anlıq görüntüləri saxlamaq və lazım olduqda onlara geri qaytarmaq asanlığı. İnsanın axmaq hərəkətlərindən qoruyur. Copy-on-write modeli sadəcə olaraq bu cür funksionallığa imkan verir - biz sadəcə olaraq silinmiş və ya üzərinə yazılmış məlumatların bloklarını buraxmırıq, lakin onlara keçidləri anlıq görüntüdə saxlayırıq. Nəticədə, snapshot məlumatın bütün həcmini deyil, cari anla müqayisədə dəyişmiş məlumatları ehtiva etdiyi qədər yer tutur.

Bütün bunlar tək disk kimi ehtiyatsız məlumatlar üçün idi. Lakin zfs yaratmağa imkan verir lazımsız massivlər, RAID1 (güzgü), RAID5 (bir diskin ölçüsündə ehtiyat), RAID6 (iki) və hətta "RAID7" ilə oxşar (və ondan üstündür) (massivdəki hər hansı üç disk uğursuz olduqda məlumatlara qənaət). Massivlər RAID10 və ya RAID50 kimi bir şey yaratmaq üçün birləşdirilə bilər. Və niyə zfs massivləri daha yaxşıdır?

5. Avadanlıq müstəqilliyi. Aparat RAID5, xüsusən RAID6 etmək üçün sizə bahalı RAID nəzarətçi lazımdır. zfs raidz yalnız SATA portları kimi diskə giriş tələb edən proqram təminatı RAID seçimidir. zfs raidz müxtəlif kontrollerlərin portlarında və müxtəlif modellərin disklərindən qurula bilər (müxtəlif disk modellərindən istifadə etməyin müsbət və mənfi cəhətləri var). Və o, sürücüləri birləşdirə biləcəyiniz demək olar ki, hər hansı bir aparata köçürüldü. Məsələn, SATA portları arasında diskləri dəfələrlə yenidən təşkil etdim, nəzarətçidə, ACHI rejimində və SAS nəzarətçisində IDE rejimində yaradılmış massivi şəffaf şəkildə idxal etdim. Əməliyyat sistemi diskləri portlara görə nömrələsə də, IDE, ACHI və SAS disklərini fərqli təyin etsə də, zfs bütün bunları səssizcə idarə edə bilir (əlbəttə ki, müəyyən limitlərə qədər. Siz axmaqcasına istədiyinizi qıra bilərsiniz).

6. Yoxluq Qeydə görə dəliklər. (Wiki) Yəni, massiv disk məlumatı qəbul edə bilmirsə, verilənlərin məhv edilməsi. Bahalı RAID kontrollerləri bir neçə gün ərzində diskə daxil olmağa vaxt tapmayan məlumatları saxlamağa və fürsət yarandıqda onu seriala yazmağa imkan verən batareyalarla təchiz edilmişdir.

7. Disk uğursuzluğuna davamlılıq. Eyni RAID5 və zfs raidz1-ə sahib olaq. Onların hər birində disklərdən biri uğursuz olur, onu yenisi ilə əvəz edirik. Və dəyişdirmə prosesi zamanı (və böyük massivlər üçün çox saatlar tələb olunur), massivin qalan disklərindən birində blok oxunmur.

RAID5 üçün bu, əksər hallarda fəlakətdir. Massiv nasaz və oxunmaz elan edildi, biz onu səliqəli bir məbləğ üçün məlumatları bərpa edəcək mütəxəssislərə aparırıq.

Zfs raidz1 üçün hansı faylların pis blokların olduğu bildirilir, qalanları sinxronlaşdırılır. Əgər dəyişdirilmiş diskdən heç olmasa bir şey oxuna bilərsə və o, kompüterdən ayrılmayıbsa, ondan alınan məlumatlar da sinxronizasiya üçün istifadə olunacaq. Və yüksək ehtimalla biz məlumatları heç itirməyəcəyik.

8. Bütün massivlə deyil, faydalı yük məlumatları ilə işləmək. Məsələn, bir diski RAID5 massivində əvəz etsəm, bərpa müddəti massivin ölçüsündən asılıdır. Əgər zfs raid1-də - seriala yazılan məlumat həcmindən, çünki verilənlər üçün istifadə olunmayan yer sinxronlaşdırılmayacaq.

Daha çox üstünlüklər var, amma evim üçün məni ən çox maraqlandıran bunlardır. Korporativ tətbiqlərdə başqaları da var (məlumatların sıxılması, təkmilləşdirmə...). Mənim üçün vacib olanları qeyd edəcəm qüsurlar.

1. Raidz massivini bir diskə genişləndirmək mümkün deyil. Bütün terabayt diskləri triterlərlə əvəz edə bilərsiniz - və həcmi artırın. Siz 3 (və ya daha çox) diskdən başqa bir raidz yığa və mövcud birinə əlavə edə bilərsiniz. Amma siz 5 diskdən ibarət raidz1-i 6-dan raidz1-ə çevirə bilərsiniz, ancaq məlumatı harasa sızdıraraq, massivi məhv edib yenisini yarada bilərsiniz.

2.Massiv azaldıla bilməz. Yalnız onu artıra bilərsiniz. Məsələn, massivdəki terabayt vintləri iki terabaytlıq vintlərlə əvəz etmək mümkündür. Lakin massiv 1 kilobayt məlumat saxlasa belə, yarım terabaytlıq məlumat üçün bu mümkün deyil.
Siz seriala başqasını qoşa bilərsiniz, lakin onu ayıra bilməzsiniz. Bütün bu cür prosedurlar yalnız kənarda bir yerdə məlumat saxlamaq, massivi məhv etmək və yenisini yaratmaq yolu ilə həyata keçirilir.

3. Resurs intensivliyi. zfs daim yoxlama məbləğlərini hesablayır, bu da prosessorda yük yaradır və keşlər üçün yaddaşı yeyir. Korporativ tətbiqlərdə bir fikir var - terabayt massiv üçün bir gigabayt yaddaş. Evdə mənim üçün 330 atom və 4 GB yaddaş kifayətdir (və 2 GB ilə işləməmişdən əvvəl - çox fərq görmədim). Bir gigabit şəbəkədən tam istifadə etmək üçün kifayət qədər atomum olmasa da, 40-50 MB/s ehtiyaclarımı ödəyir.Lakin avadanlıq köhnə və hətta daha zəifdirsə, zfs sizin üçün deyil.

Bəli, bəyəndinizsə, xatırladacağam NAS4 pulsuz, bütün yazılar seriyasının həsr olunduğu NAS idarəetməsi, o cümlədən zfs ilə əməliyyatlar yeni başlayanlar üçün başa düşülən veb interfeysi vasitəsilə baş verir.

Digər platformalara ötürülməsi tərtibatçılar arasında diametrik olaraq fərqli duyğuların artmasına səbəb olan əməliyyat sistemi üçün: vəhşi heyranlıq və şadlıqdan tam əksinə - qıcıqlanma və qəzəb.

Gəlin hər bir tərəfin nöqteyi-nəzərindən, eləcə də bu fayl sisteminin bu cür qütb qiymətləndirmələrinin mövcudluğunun səbəbləri ilə tanış olmağa çalışaq. Ancaq bunu etməzdən əvvəl gəlin heç olmasa ümumi mənada onun xüsusiyyətləri və xassələri ilə tanış olaq:

  • 128 bitlik fayl sistemi, demək olar ki, qeyri-məhdud miqdarda məlumat saxlamağa imkan verir. Təcrübədə bu o deməkdir ki, məlumatların saxlanmasının təşkilinə cari yanaşmadan istifadə olunarsa, ZFS nəzəri cəhətdən bugünkü texnoloji imkanları aşan həcmdə məlumat saxlaya bilər;
  • Həm istifadəçi məlumatlarının, həm də FS metadatalarının saxlanmasının bütövlüyünə və etibarlılığına çox diqqət yetirilir, bunun üçün qabaqcıl hashing alqoritmlərindən istifadə olunur;
  • ZFS fayl sistemi və həcm idarəetmə sisteminin imkanlarını birləşdirir (saxlama hovuzlarının yeni konsepsiyası);
  • Bu FS sayəsində fsck-ə ehtiyac yoxdur;
  • Ənənəvi olaraq, ZFS kifayət qədər güclü fayl sistemi hesab olunur. Ancaq bu ifadə bəzən şübhə altına alınır. Ən azı, xüsusi rəqəmlər bu cür performans müqayisəsinin həyata keçirildiyi tapşırıq növündən çox asılıdır;
  • Fərdi faylların və ya fayl sistemlərinin seçici sıxılma və/və ya şifrələmə imkanları;
  • Dublikat faylların avtomatik tanınması və birləşdirilməsi (çıxarılması) üçün dəstək;
  • ZFS kvotaları dəstəkləmir. Daha doğrusu, onun kvotalara dəstəyi bir qədər özünəməxsusdur: "kvota bölgüsü" anlayışı ZFS terminologiyasında yaradılmış fayl sisteminin ölçüsünü məhdudlaşdırdığınız deməkdir. Sistemin dizaynı elədir ki, hər bir ZFS istifadəçisinə bütün əlaqədar məhdudiyyətlərlə öz fayl sistemi ayrılmalıdır;
  • Müəyyən problemlər FS-nin texniki xüsusiyyəti - GPL ilə uyğun olmayan kod lisenziyası (CDDL) ilə deyil;
  • ZFS-nin təkcə texniki həllər sahəsində deyil, innovativliyini göstərmək üçün mən nümunə olaraq veb interfeysi vasitəsilə FS-nin əsas imkanlarını idarə etmək bacarığını verəcəyəm;
  • Və təkrar edirəm, ZFS öz imkanları və xüsusiyyətləri baxımından olduqca böyükdür və onların hamısını burada sadalamaq sadəcə mümkün deyil.

Əlbəttə ki, bu xüsusiyyətlərə ayrıca baxsanız, onlar bir çox cəhətdən yeni deyillər və bu və ya digər formada digər fayl sistemlərində tapılır, lakin yuxarıda göstərilən xüsusiyyətlərin belə vahid kompleksi ilk dəfə yalnız ZFS-də təqdim olunur, bazarda bu qədər unikal və maraqlı edən budur.

Buraya onun nisbətən yetkin yaşını və kod sabitliyi baxımından çox yaxşı vəziyyətini əlavə etsək, onun kodunun açıq lisenziya altında nəşri ilə bağlı xəbərlərə səbəb olan emosiyaların fırtınaları, eləcə də bu innovativ FS-nin belə məşhur əməliyyatlara daşınması. FreeBSD, Linux, MacOS kimi sistemlər aydınlaşır.

Buna kəskin mənfi cavablara gəlincə, şübhəsiz ki, artıq məşhur fayl sistemi, onlar əsasən aşağıdakı tezislərə qədər qaynayırlar. Yeri gəlmişkən, aparıcı Linux inkişaf etdiricilərindən biri, disk alt sistemini dəstəkləmək üçün məsul olan (Andrew Morton) ZFS-ni "tətbiq səviyyələrini dəhşətli şəkildə pozmaqda" qəzəbli ittihamlar səsləndirdi.

Endryu Mortan, Linux nüvə disk alt sisteminin aparıcı inkişaf etdiricisi

Bəzi digər tərtibatçılar ZFS-ni "dəhşətli dizaynı" üçün günahlandırmaqda ona qoşuldular və hələlik qeyd etmək olar ki, Andrea Mortan ZFS-ə - " dizayn səviyyələrinin dəhşətli pozulması"Və" əsassız kod qarışıqlığı“— artıq Oracle, Linux, RedHat, FreeBSD və digər tanınmış layihələrin tərtibatçılarının qiyabi olaraq cavab verməyə çalışdıqları bir növ İnternet meminə çevriliblər.

Bu hücumlara cavab olaraq ZFS-in aparıcı tərtibatçısı (Ceff Bonwick):

“Bütün bu ittihamlar fayl sisteminin tətbiqi səviyyələrinin dizaynını pozmaqda, çünki ZFS fayl sistemi, həcm meneceri və proqram təminatı RAID nəzarətçisinin funksionallığını özündə birləşdirir. Güman edirəm ki, bu şikayətin cavabı "səviyyə dizaynını pozur" ittihamı ilə nə demək istədiyinizdən asılı olacaq.

ZFS-nin inkişafı zamanı biz aşkar etdik ki, disk yığınının abstraksiya təbəqələrinin standart dizaynı təəccüblü miqdarda lazımsız mürəkkəblik və lazımsız məntiq təqdim edir. Refaktorinq prosesində belə qənaətə gəldik ki, problemin yeganə həlli təbəqələrin sərhədlərinin və onların əlaqələrinin əsaslı surətdə yenidən nəzərdən keçirilməsidir - bu, bir anda hər şeyi xeyli sadələşdirdi”.

Şəxsən ZFS-də hansı mövqeni tutmağınızdan asılı olmayaraq, ən azı bir şeyi nəzərə almaq lazımdır: ZFS fayl sistemi sənayesində əsaslı şəkildə yeni texnologiyadır.

Yüklənir...Yüklənir...