უახლოესი მომავლის ფაილური სისტემები. ZFS

ZFS ლინუქსის შეკუმშვისა და დედუპლიკაციის მიხედვით

როგორია მონაცემთა ჩაწერის თანმიმდევრობა zfs ფაილურ სისტემაში ლინუქსში?

ერთადერთი კონკრეტული დოკუმენტი, რომელიც მე ვიპოვე, არის http://docs.oracle.com/cd/E36784_01/html/E36835/gkknx.html ნათქვამია: როდესაც ფაილი იწერება, მონაცემები შეკუმშულია, დაშიფრულია და შემოწმებული ჯამი დამოწმებულია. შემდეგ, თუ ეს შესაძლებელია, მონაცემების დუბლიკატი ხდება.

მაგრამ თუ ეს ასეა, მაშინ დედუპლიკაცია არ გააუქმებს შეკუმშვის სხვადასხვა ალგორითმებით შეკუმშულ ბლოკებს.

მე გამოვცადე mysqlf და ვფიქრობ, რომ თანმიმდევრობაა: dedup, compres, encrypt .

ჩემი ტესტის დაყენება:

Zpool შექმნა ტანკი /dev/sdb zfs შექმნა ტანკი/lz4 zfs შექმნა სატანკო/gzip9 zfs კომპლექტი შეკუმშვა=lz4 ტანკი/lz4 zfs კომპლექტი შეკუმშვა=gzip-9 სატანკო/gzip9 zfs კომპლექტი dedup=ტანკზე

zfs სიის გამომავალი

გამოყენებული სახელწოდება AVAIL REFER MOUNTPOINT ავზი 106K 19.3G 19K /ტანკი ავზი/gzip9 19K 19.3G 19K /ტანკი/gzip9 ტანკი/lz4 19K 19.3G 19K /ტანკი/lz4

შემთხვევითი ფაილის გენერირება dd if=/dev/urandom of=random.txt count=128K bs=1024 გამოყენებით

131072+0 Datensätze ein 131072+0 Datensätze aus 134217728 Bytes (134 MB) kopiert, 12.8786 s, 10.4 MB/s

zpool სიის გამოტანა ცარიელ აუზში:

NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT ავზი 19.9G 134K 19.9G - 0% 0% 1.00x ONLINE -

შემდეგ დააკოპირეთ ფაილები მონაცემთა ნაკრებებში სხვადასხვა შეკუმშვის ალგორითმებით:

Cp random.txt /tank/lz4 cp random.txt /tank/gzip9

zfs სიის გამომავალი კოპირების შემდეგ:

გამოყენებული სახელწოდება AVAIL REFER MOUNTPOINT ავზი 257M 19.1G 19K /ტანკი ავზი/gzip9 128M 19.1G 128M /ტანკი/gzip9 ავზი/lz4 128M 19.1G 128M /ტანკი/lz4

გამომავალი zpool სიის თაღლითური ასლი:

NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT ავზი 19.9G 129M 19.7G - 0% 0% 2.00x ONLINE -

დედუპლიკაციის ფაქტორი 2.0 ერთი ფაილის სხვადასხვა მონაცემთა ნაკრებში კოპირების შემდეგ. ჩემი აზრით, ეს ნიშნავს, რომ დედუბლირება ხდება მონაცემები-ბლოკავს შეკუმშვასა და დაშიფვრამდე.

გთხოვთ ვინმემ შეამოწმოს არის თუ არა ეს სწორი?

1 პასუხი

როდესაც ფაილი იწერება, მონაცემები შეკუმშული, დაშიფრული და შემოწმება ხდება. ამის შემდეგ მონაცემების დუბლიკატი ხდება, თუ ეს შესაძლებელია.

შემთხვევითი ფაილით ჩემი ვარაუდი არასწორი იყო. როგორც ჩანს, ZFS აჩერებს შეკუმშვას, თუ ვერ მიაღწევს შეკუმშვის გარკვეულ მინიმალურ თანაფარდობას.

კიდევ ერთი განსაკუთრებული რამ, რაც გასათვალისწინებელია არის ის, რომ LZ4-ის შესრულება არაკომპრესირებულ მონაცემებზე ძალიან მაღალია. ეს მიიღწევა „ადრეული შეწყვეტის“ მექანიზმის ჩართვით, რომელიც ამოქმედდება, თუ LZ4 ვერ დააკმაყოფილებს მოსალოდნელ მინიმალურ შეკუმშვის კოეფიციენტს (12.5% ​​ZFS-ზე).

ZFS ფაილური სისტემა არის მონაცემთა საიმედო და იაფი შენახვის საფუძველი

პროექტის საიტის გვერდებზე შეეხო ფაილების შენახვის ორგანიზების თემას:

  • Პირველი ნაწილი
  • მეორე ნაწილი

ამ სტატიებში იყო ნახსენები ფაილური სისტემა ZFS, ახლა, როგორც დაგპირდით, ამაზე უფრო დეტალურად ვისაუბროთ.

ZFS-ის შესავალი

აბრევიატურა ZFSმოვიდა ფრაზიდან zettabyte ფაილური სისტემა, რითაც აღნიშნავს ერთ-ერთ ყველაზე თანამედროვე და მოწინავე ფაილურ სისტემას. მაგალითად, უკვე სახელიდან გამომდინარეობს, რომ ეს არის ზეტაბაიტი ფაილების სისტემაუფრო ზუსტად რომ ვთქვათ, ეს FS მხარს უჭერს 256 კვადრილონი ზეტაბაიტს. ცნობისთვის, ერთი ზეტაბაიტი უდრის 1,073,741,824 ტერაბაიტს!

მაპატიონ მკითხველებმა, მაგრამ ამ სტატიაში არ იქნება მნიშვნელოვანი აკადემიური განცხადებები. მე ვთავაზობ უშუალოდ კონცენტრირება მოახდინოთ პრაქტიკულ ასპექტზე, კერძოდ შეცდომის ტოლერანტული და მასშტაბირებადი მონაცემთა საწყობის შექმნაზე. ასეთი საცავები, რა თქმა უნდა, აშენებულია RAID მასივის ტექნოლოგიების გამოყენებით, ხოლო ZFS ფაილურ სისტემას აქვს საკუთარი სტანდარტული ინსტრუმენტი ფიზიკურ დისკებთან მუშაობისთვის და მათ ორგანიზებაში. RAID-Zმასივები (RAID5-ის ანალოგი). უფრო მეტიც, მსგავსი ტექნოლოგიებისგან განსხვავებით, ეს FS დამოუკიდებლად აღადგენს დაზიანებულ ბლოკებს და ასწორებს მათ ფრენის დროს მომხმარებლის ჩარევის გარეშე. RAID-Z მუდმივად ამოწმებს მონაცემებს მონაცემთა მთლიანობის შესანარჩუნებლად და შეუძლია ბლოკების იდენტიფიცირება, რომლებიც საჭიროებენ ხელახლა შეკრებას. ეს კეთდება მანამ, სანამ მოთხოვნილი მონაცემები მიაღწევს მომხმარებელს.

ამ FS-ის მთავარი უპირატესობაა პრაქტიკულად შეუზღუდავი ადგილი დისკზე და ჩაშენებული ინსტრუმენტები შეცდომის შემწყნარებლური RAID-Z მასივების შესაქმნელად, რომელიც ასევე მოიცავს ატომური მონაცემების ჩაწერა. ეს ტერმინი ნიშნავს შემდეგს: მონაცემები ან მთლიანად იწერება დისკზე ან საერთოდ არ იწერება. ეს ტექნოლოგია საშუალებას გაძლევთ თავიდან აიცილოთ პრობლემები, რომლებიც წარმოიქმნება ქსელის გაუმართაობის, კვების ქვესისტემისა და ოპერაციული სისტემის გაუმართაობის შემთხვევაში.

ოპერაციული სისტემის მხარდაჭერა

ZFS თავდაპირველად შეიქმნა Sun Microsystems-ის მიერ Solaris ოპერაციული სისტემისთვის. ახლა, მრავალი პროექტის წყალობით, ეს ფაილური სისტემა ხელმისაწვდომი გახდა სხვა ოპერაციული სისტემებისთვის. მათ შორისაა - გარდა Solaris-ისა, ასევე OpenSolaris, Apple Mac OS X 10.5, FreeBSD, Linux (FUSE ან ცალკე ბირთვის მოდულის მეშვეობით (ZFS Linux-ზე)). კონკრეტული OS-ის არჩევანი თქვენი პროექტისთვის ან, უფრო მარტივად რომ ვთქვათ, ფაილების შესანახად, თქვენზეა დამოკიდებული. ყველაზე გავრცელებული FreeBSDდა წარმოებული - NAS4 უფასო.

შენახვის სისტემის დიზაინის მახასიათებლები

მონაცემთა საწყობის ორგანიზებისას, თქვენ უნდა შეაფასოთ რამდენიმე პუნქტი. ზოგიერთი ყველაზე აქტუალური კითხვაა, თუ რამდენი ადგილი სჭირდება დისკზე მომხმარებლებსა და სერვისებს, ასევე რა ვარიანტებია ხელმისაწვდომი შესანახი მოწყობილობების მასივის გაფართოებისა და მასშტაბისთვის. შემდეგ ჩნდება უფრო ტექნიკური კითხვები - რამდენი დისკია საჭირო, რა კონტროლერები, დედაპლატები და კონფიგურაცია RAID-Zგამოყენებაა საჭირო. ამ კითხვებზე პასუხის გაცემა საჭიროა მუშაობის დაწყებამდე, ასე რომ, მოდით, უფრო დეტალურად განვიხილოთ ისინი.

  • Ადგილი დისკზე

შექმნილი საწყობის მოცულობის საჭიროებებიდან და მოთხოვნებიდან გამომდინარე რაოდენობა HDD, მათი მოდელები, ასევე RAID-Z კონფიგურაციის ტიპი. ნება მომეცით დაუყოვნებლივ მოგცეთ რამდენიმე რეკომენდაცია:

— მაქსიმალური საიმედოობა და შესრულება მიიღწევა იმავე მოდელისა და მწარმოებლის მყარი დისკის გამოყენებისას

— ოპერაციული სისტემა არ უნდა განთავსდეს საცავში, უმჯობესია გამოიყენოთ ცალკე HDD/USB დისკი

— დისკების რაოდენობა უნდა შეესაბამებოდეს არჩეულ RAID-Z სისტემას

  • Პარამეტრები RAID-Z

არსებობს რამდენიმე ტიპის RAID-Z მასივი, მაგრამ ახლა ჩვენ განვიხილავთ ორ ყველაზე პრაქტიკულ და პოპულარულს:

- raid-z1 - აქ ერთი დისკი აუზიდან გამოიყენება პარიტეტული კონტროლისთვის (ამ ტიპის მასივის ორგანიზებისთვის მინიმალური დისკი არის 3). თუ ერთი დისკი მარცხდება, მასივი სწორად იმუშავებს; როდესაც ის შეიცვლება, მასივი თავად აღდგება. თუ ორი დისკი ვერ ხერხდება, მასივი განადგურებულია და მონაცემების აღდგენა შეუძლებელია.

— raid-z2 — ამ შემთხვევაში, 2 დისკი გამოყოფილია პარიტეტული კონტროლისთვის (ამ კონფიგურაციის მინიმალური დისკი არის 5). ეს სისტემა უფრო შეცდომის შემწყნარებელია.

  • მყარი დისკები

როგორც უკვე აღვნიშნეთ, უმჯობესია გამოიყენოთ იგივე მწარმოებლის იდენტური დისკები (მოცულობა, მოდელი და ა.შ.). ამავდროულად, გასათვალისწინებელია ერთი მნიშვნელოვანი პუნქტი, რომელსაც ახალგაზრდა პროფესიონალები გამოტოვებენ. მკაცრად რეკომენდებულია კიდევ ერთი დისკის შეძენა, ე.ი. გააკეთეთ შესყიდვები ფორმულის გამოყენებით n+1 დისკების რაოდენობა. ეს შეამცირებს შეფერხების დროს და ინფორმაციის დაკარგვის რისკს "ქარხნული დეფექტების" ან HDD-ის დაზიანების გამო ტრანსპორტირებისას და ასევე შეამცირებს გაუმართავი მყარი დისკის შეცვლის დროს. აღსანიშნავია, რომ ZFS მხარს უჭერს "ცხელ სათადარიგოს", ე.ი. თქვენ შეგიძლიათ დააკონფიგურიროთ აუზი და დისკები ისე, რომ ერთ-ერთი მათგანი გამოყენებული იყოს ცხელი ჩანაცვლებისთვის (შენახვის შეჩერების გარეშე), მათ შორის ავტომატურ რეჟიმში. ასევე ღირს იმის გაგება, რომ შენახვის სიჩქარე დამოკიდებულია მყარი დისკების რაოდენობაზე (კითხვისა და წერის დროს დისკებზე დატვირთვის განაწილებით).

  • სისტემის სხვა კომპონენტები

თქვენი შენახვის სივრცის მოთხოვნებიდან გამომდინარე, თქვენ უნდა აირჩიოთ ხალიჩა. დაფები, კონტროლერები, დენის წყაროები და სერვერის ქეისები გაფართოებით. საწარმოს კლასის შენახვის ორგანიზებისას, თქვენ უნდა გამოიყენოთ მხოლოდ MB და ოპერატიული მეხსიერება პარიტეტული კონტროლით (ECC)!

  • სისტემის მასშტაბურობა

როგორც წინა აბზაცში აღინიშნა, MB და სერვერის ქეისებმა უნდა უზრუნველყონ დამატებითი მოწყობილობების ინსტალაცია. ამავდროულად, თუ შეიქმნება საწყისი დონის ან საშუალო დონის საცავი (სისტემის საიმედოობისა და მუშაობის სერიოზული მოთხოვნების გარეშე), SATA კონტროლერები შეიძლება გახდეს ბოსტნე.

შეაჯამეთ

ZFS ფაილური სისტემააქვს არაერთი უნიკალური შესაძლებლობა მუშაობისთვის HDDდა მათი ორგანიზება შეცდომისადმი ტოლერანტულ და მასშტაბირებად მონაცემთა ბაზებში. თუმცა, ამ FS-ის ყველა სარგებლის მისაღებად, თქვენ უნდა გამოიყენოთ მინიმუმ ორი მყარი დისკი.

ნება მომეცით მოკლედ ჩამოვთვალო ZFS-ის ძირითადი უპირატესობები და თვისებები:

  • ჩაშენებული ხელსაწყოები HDD დანაყოფებთან მუშაობისა და RAID-Z-ის ორგანიზებისთვის
  • არ არის კავშირი აღჭურვილობასთან
  • არ არის მგრძნობიარე ელექტროენერგიის დაუგეგმავი გათიშვის მიმართ
  • წარუმატებელი HDD-ების ავტომატური შეცვლა, შეცდომის გამოსწორება და RAID-ის აღდგენა
  • მხარს უჭერს უზარმაზარი ზომის მოცულობებს, ფაილებს, აუზებს, ასევე შენახვის მარტივ მასშტაბურობას
  • ZFS Pools-ის სწრაფი და მოსახერხებელი ადმინისტრირება
  • როგორც HDD იზრდება, მეხსიერების შესრულება იზრდება
  • დედუპლიკაცია და მონაცემთა შეკუმშვა

ამ ფაილური სისტემის ნაკლოვანებები მოიცავს:

  • მაღალი მოთხოვნები CPU და RAM რესურსებზე
  • საწარმოს კრიტიკული მონაცემებისთვის გამოყენებული საცავი უნდა აშენდეს ECC RAM-ის გამოყენებით.

შემდეგი სტატია იქნება პრაქტიკული - დისკებთან მუშაობა, მონაცემთა ბაზის შექმნა და ადმინისტრირება.

წინა პოსტებში არაერთხელ ვახსენე zfs. მეტიც, აღმოჩნდა, რომ მას ბავშვური სტანდარტების მიღმა სჭირდებოდა მეხსიერებაც და პროცესორიც. რჩება კითხვა - რატომ? მე მაშინვე ვიტყვი, რომ არ ვიქნები პრეტენზია სრულყოფილად და ა.შ. შეგიძლიათ მოიძიოთ რა არის zfs ვიკიპედიაში. ვისაც უფრო სერიოზულად აინტერესებს, გირჩევთ დაგუგლოთ zfs ადმინისტრაციის სახელმძღვანელო(როგორც ჩანს რუსულად იყო). ჩემი მიზანია ავხსნა, რატომ არის მოულოდნელად საწარმოს დონის ფაილური სისტემა სახლში. შენიშვნა მოსალოდნელია, რომ მკითხველს, განსაკუთრებით პოსტის მეორე ნაწილს, აქვს დამაჯერებელი გაგება, თუ რა არის დისკის მასივები, მაგალითად. RAID5. თუ არ არის გაგება, ნაკლებად სავარაუდოა, რომ ასეთი მასივების აშენება სახლში და ამ ტექსტის წაკითხვა ღირს.


1. ფაილური სისტემის მთლიანობა. ყველას შეექმნა სიტუაცია, როდესაც ფაილური სისტემა უნდა შეკეთებულიყო. წარმატებული თუ არა ძალიან წარმატებული. zfs ისეა აგებული, რომ მას არ აქვს ისეთი პროგრამა, როგორიცაა Windows chkdsk ან Linux fsck. სიტუაცია, როდესაც ფაილური სისტემა მთავრდება არათანმიმდევრულ მდგომარეობაში, უბრალოდ შეუძლებელია. დანერგილია Copy-on-Write-ის საშუალებით (მონაცემებს არ ვწერთ ძველზე, არამედ ვირჩევთ ახალ ბლოკს, ვწერთ იქ, თუ ყველაფერი წესრიგშია, ვცვლით კურსორს ძველი მონაცემებიდან ახალზე. მეტი დეტალები, იხილეთ Google). შედეგად, დისკის ლოგიკური სტრუქტურა არ გაუარესდება იმის გამო, რომ რაღაც არასწორ დროს გამორთული იყო ან დენი გამოვიდა. აბა, ბოლო 10 წამში ჩაწერილი გაქრება? (თუმცა, დისკი შეიძლება ფიზიკურად დაიწვას ელექტროენერგიასთან თამაშისას).

2. დარწმუნებული იყავით, რომ არ წაიკითხავთ ნაგავს, რადგან ფიქრობთ, რომ კითხულობთ მონაცემებს. რკინა არასრულყოფილია. მაგალითად, თუ SATA კაბელებზე კონტაქტები ღრიალებს, ის, რაც დისკზე ჩაიწერება, სრულიად განსხვავდება იმისგან, რაც მეხსიერებაში იყო. და, მე აღვნიშნავ, რომ ამის შესახებ დიდი ხნის განმავლობაში არავინ იცის. ჩემი პროფესიული გამოცდილება ბეჭდვას უკავშირდება. არაერთხელ მომიწია გამოსავალზე სურათის ნახვა, რომელიც ნორმალური იყო შუამდე - შემდეგ კი ხმაური იყო. zfs ინახავს საკონტროლო ჯამს თითოეულ მონაცემთა ბლოკთან ერთად. მონაცემების წაკითხვისას თანხა ავტომატურად შედარება ხდება. ეს ასე მარტივი ჩანდა...

3. დარწმუნებული იყავით, რომ შენახული მონაცემები არ არის დამპალი. დიახ, შენახვის დროს მონაცემები უარესდება. ეს კარგად არის ცნობილი მათთვის, ვისაც სჯეროდა DVD დისკების მწარმოებლების მარკეტინგის შესახებ დაახლოებით 100 წლის წინ და მათზე ჩაწერეს მათი არქივები. ეს განსაკუთრებით მნიშვნელოვანია „ცივი“ მონაცემებისთვის, რომლებიც დიდი ხნის განმავლობაში უმოძრაოდ რჩებოდნენ. არქივები, ძველი ფოტოები და ა.შ. როგორც ჩანს, მარტივია მონაცემების შემოწმება - თქვენ უნდა წაიკითხოთ ისინი და შეადაროთ საკონტროლო ჯამები. zfs-ისთვის გასაგებია - უბრალოდ წაიკითხეთ ფაილები. რეგულარული შემოწმებისთვის არის ბრძანება, რომელიც ამოწმებს ყველაფერს ფონზე.

4. ფაილური სისტემის კადრები.მოცემულ დროს ფაილური სისტემის მდგომარეობის დამახსოვრების სიმარტივე, ასეთი კადრების შენახვა და საჭიროების შემთხვევაში მათზე დაბრუნება. იცავს ადამიანის სულელური ქმედებებისგან. Copy-on-write მოდელი უბრალოდ იძლევა ასეთი ფუნქციონირების საშუალებას - ჩვენ უბრალოდ არ ვათავისუფლებთ წაშლილი ან გადაწერილი მონაცემების ბლოკებს, არამედ ვინახავთ მათ ბმულებს სნეპშოტში. შედეგად, სნეპშოტი იკავებს იმდენ ადგილს, რამდენიც შეიცავს მონაცემებს, რომლებიც შეიცვალა მიმდინარე მომენტთან შედარებით, და არა მონაცემთა მთლიან რაოდენობას.

ეს ყველაფერი იყო მონაცემებისთვის ზედმეტი სიჭარბის გარეშე, როგორიცაა ერთი დისკი. მაგრამ zfs გაძლევთ საშუალებას შექმნათ ზედმეტი მასივები, RAID1-ის მსგავსი (და აღემატება) RAID1-ს (სარკე), RAID5 (ჭარბი რაოდენობა ერთი დისკის ზომით), RAID6 (ორი) და თუნდაც "RAID7" (მონაცემების შენახვა მასივის ნებისმიერი სამი დისკის მარცხის შემთხვევაში). მასივები შეიძლება გაერთიანდეს RAID10 ან RAID50 მსგავსი რამის შესაქმნელად. და რატომ არის zfs მასივები უკეთესი?

5. ტექნიკის დამოუკიდებლობა. ტექნიკის RAID5, განსაკუთრებით RAID6-ის გასაკეთებლად, გჭირდებათ ძვირადღირებული RAID კონტროლერი. zfs raidz არის პროგრამული RAID ვარიანტი, რომელიც მოითხოვს მხოლოდ დისკზე წვდომას, როგორიცაა SATA პორტები. zfs raidz შეიძლება აშენდეს სხვადასხვა კონტროლერის პორტებზე და სხვადასხვა მოდელის დისკებზე (დისკის სხვადასხვა მოდელების გამოყენებას აქვს დადებითი და უარყოფითი მხარეები). და ის გადავიდა თითქმის ნებისმიერ აპარატურაზე, სადაც შეგიძლიათ დისკების დაკავშირება. მაგალითად, მე არაერთხელ გადავაწყვე დისკები SATA პორტებს შორის, გამჭვირვალედ შემოვიტანე IDE რეჟიმში შექმნილი მასივი კონტროლერზე, ACHI რეჟიმში და SAS კონტროლერზე. მიუხედავად იმისა, რომ ოპერაციული სისტემა დისკებს პორტების მიხედვით ნომრავს და IDE, ACHI და SAS დისკებს განსხვავებულად განსაზღვრავს, zfs-ს შეუძლია ჩუმად გაუმკლავდეს ამ ყველაფერს (გარკვეულ ზღვრამდე, რა თქმა უნდა. შეგიძლიათ სულელურად დაარღვიოთ რაც გინდათ).

6. არარსებობა ხვრელები ჩანაწერის მიერ. (ვიკი) ანუ მონაცემთა განადგურება, თუ მასივის დისკი ვერ მიიღებს მონაცემებს. ძვირადღირებული RAID კონტროლერები აღჭურვილია ბატარეებით, რომლებიც საშუალებას გაძლევთ შეინახოთ მონაცემები, რომლებსაც არ ჰქონდათ დრო დისკზე მრავალი დღის განმავლობაში მისასვლელად და ჩაწეროთ იგი მასივში, როდესაც ამის შესაძლებლობა გაჩნდება.

7. დისკის უკმარისობის გამძლეობა. მოდით გვქონდეს იგივე RAID5 და zfs raidz1. თითოეულ მათგანში ერთი დისკი ფუჭდება, ჩვენ ვცვლით მას ახლით. და ჩანაცვლების პროცესში (და დიდ მასივებს სჭირდება ბევრი საათი), მასივის ერთ-ერთ დარჩენილ დისკზე ბლოკი არ იკითხება.

RAID5-ისთვის ეს უმეტეს შემთხვევაში კატასტროფაა. მასივი გამოცხადებულია გაუმართავი და წაუკითხავი, ჩვენ მას პროფესიონალებს გადავცემთ, რომლებიც აღადგენენ ინფორმაციას დალაგებული თანხით.

zfs raidz1-ისთვის მოხსენებულია რომელი ფაილები შეიცავდა ცუდ ბლოკებს, დანარჩენი სინქრონიზებულია. და თუ რაღაცის წაკითხვა მაინც შესაძლებელია შეცვლილი დისკიდან და ის არ არის გათიშული კომპიუტერიდან, მისგან მიღებული ინფორმაცია ასევე გამოყენებული იქნება სინქრონიზაციისთვის. და დიდი ალბათობით ჩვენ საერთოდ არ დავკარგავთ მონაცემებს.

8. მუშაობა დატვირთვის მონაცემებთან და არა მთელ მასივთან. მაგალითად, თუ შევცვლი დისკს RAID5 მასივში, აღდგენის დრო დამოკიდებულია მასივის ზომაზე. თუ zfs raid1-ში - მასივში ჩაწერილი ინფორმაციის მოცულობიდან, რადგან მონაცემთათვის გამოუყენებელი სივრცე არ იქნება სინქრონიზებული.

კიდევ ბევრი უპირატესობაა, მაგრამ ეს არის ის, რაც ყველაზე მეტად მაინტერესებს ჩემი სახლისთვის. კორპორატიულ აპლიკაციებში არის სხვა (მონაცემთა შეკუმშვა, დედუბლირება...). მე აღვნიშნავ მათ, რაც ჩემთვის მნიშვნელოვანია ხარვეზები.

1. შეუძლებელია raidz მასივის გაფართოება ერთ დისკზე. თქვენ შეგიძლიათ შეცვალოთ ყველა ტერაბაიტი დისკი ტრიტერებით - და გაზარდოთ მოცულობა. თქვენ შეგიძლიათ ააწყოთ კიდევ ერთი raidz 3 (ან მეტი) დისკიდან და დაამატოთ ის არსებულს. მაგრამ თქვენ შეგიძლიათ გადააქციოთ raidz1 5 დისკიდან Raidz1 6-დან მხოლოდ ინფორმაციის სადმე გაჟონვით, მასივის განადგურებით და ახლის შექმნით.

2.მასივის შემცირება შეუძლებელია. თქვენ შეგიძლიათ მხოლოდ გაზარდოთ იგი. მაგალითად, შესაძლებელია მასივში ტერაბაიტის ხრახნების შეცვლა ორ ტერაბაიტიანი ხრახნებით. მაგრამ შეუძლებელია ნახევარი ტერაბაიტის მონაცემები, მაშინაც კი, თუ მასივი ინახავს 1 კილობაიტ ინფორმაციას.
თქვენ შეგიძლიათ დააკავშიროთ სხვა მასივი, მაგრამ არ შეგიძლიათ მისი გათიშვა. ყველა ასეთი პროცედურა ხდება მხოლოდ ინფორმაციის სადმე გარეთ შენახვის, მასივის განადგურებისა და ახლის შექმნის გზით.

3. რესურსის ინტენსივობა. zfs მუდმივად ითვლის საკონტროლო ჯამებს, რაც ქმნის დატვირთვას პროცესორზე და ჭამს მეხსიერებას ქეშისთვის. კორპორატიულ აპლიკაციებში არსებობს მოსაზრება - მეხსიერების გიგაბაიტი ტერაბაიტის მასივზე. სახლში, 330 ატომი და 4 GB მეხსიერება საკმარისია ჩემთვის (და სანამ ის მუშაობდა 2 გბ-ით - დიდი განსხვავება ვერ დავინახე). მიუხედავად იმისა, რომ მე არ მაქვს საკმარისი ატომი გიგაბიტიანი ქსელის სრულად გამოსაყენებლად, 40-50 მბ/წმ აკმაყოფილებს ჩემს საჭიროებებს, მაგრამ თუ აპარატურა ძველია და კიდევ უფრო სუსტი, zfs არ არის თქვენთვის.

დიახ, შეგახსენებთ, თუ მოგეწონათ - ში NAS4 უფასო, რომელსაც ეთმობა პოსტების მთელი სერია, NAS მენეჯმენტი, zfs-ით ოპერაციების ჩათვლით, ხდება დამწყებთათვის გასაგები ვებ ინტერფეისის საშუალებით.

ZFS მაგარი უნდა იყოს, მაგრამ მე ცოტა მაღიზიანებს, რომ თითქოს წარსულშია ჩარჩენილი - მანამდეც კი, სანამ ის აღიარებული იყო, როგორც მაგარი და საუკეთესო ფაილური სისტემა. ის მოუქნელია, არ გააჩნია თანამედროვე ფლეშ ინტეგრაცია და არ არის პირდაპირ მხარდაჭერილი ოპერაციული სისტემების უმეტესობის მიერ. მაგრამ მე ვინახავ ყველა ჩემს ძვირფას მონაცემს ZFS-ზე, რადგან ის უზრუნველყოფს უსაფრთხოების საუკეთესო დონეს SOHO (პატარა ოფისი/სახლის ოფისი) გარემოსთვის. და ამიტომ.

შენახვის სისტემების პირველი დირექტივა: არ დააბრუნოთ არასწორი მონაცემები!

ZFS რევოლუცია. დაახლოებით 2006 წელი

2007 წლიდან 2010 წლამდე: ZFS დაღმართზე წავიდა

მაგრამ რაღაც საშინელი მოხდა ZFS-ს მისი ტრიუმფის გზაზე: სასამართლო პროცესები, ლიცენზირების პრობლემები და FUD - ფსიქოლოგიური მანიპულირების ტაქტიკა არაკეთილსინდისიერებისგან.

პირველი ქარიშხლის ღრუბლები გამოჩნდა 2007 წელს, როდესაც NetApp-მა უჩივლა Sun-ს იმ მოტივით, რომ ZFS-მა დაარღვია მათი WAFL პატენტები. Sun-მა იმავე წელს სარჩელი გამოაცხადა - და იურიდიული ბრძოლა გაგრძელდა. მიუხედავად იმისა, რომ ZFS-ს ნამდვილად არ გააჩნდა NetApp კოდი, კადრების ასლი-ჩაწერის მექანიზმი WAFL-ის მსგავსი იყო და ზოგიერთი ჩვენგანი ინდუსტრიაში შეშფოთებული იყო, რომ NetApp-ის სარჩელი გავლენას მოახდენდა ZFS-ის ღია კოდის ხელმისაწვდომობაზე. ეს რისკები საკმარისი იყო იმისთვის, რომ Apple-მა შეწყვიტოს ZFS-ის მხარდაჭერა Mac OS X 10.6 „თოვლის ლეოპარდში“ OS-ის გამოშვებამდე.

აქ არის შესანიშნავი ბლოგი ZFS-ისა და Apple-ის შესახებ ადამ ლევენტალისგან, რომელიც მუშაობდა პროექტზე კომპანიაში: ZFS: Apple-ის ახალი ფაილური სისტემა, რომელიც არ იყო.

იმ დროს Sun გადიოდა რთულ პერიოდებს და Oracle-მა ისარგებლა კომპანიის შესყიდვის შესაძლებლობით. ამან გააჩინა ახალი ეჭვები ZFS-ის მომავალთან დაკავშირებით, რადგან Oracle არ არის ცნობილი, როგორც თავისუფალი პროექტების ფართო საზოგადოების მხარდაჭერის დიდი გულშემატკივარი. და CDDL ლიცენზია, რომელიც Oracle-მა გამოიყენა ZFS კოდზე, აღმოჩნდა, რომ შეუთავსებელია GPLv2-თან, რომელსაც იყენებს Linux, რაც შეუძლებელს ხდის ZFS-ის გამოყენებას მსოფლიოს ყველაზე პოპულარულ სერვერზე OS-ზე.

მიუხედავად იმისა, რომ OpenSolaris პროექტი გაგრძელდა Oracle-ის შეძენის შემდეგ და ZFS ჩართული იყო FreeBSD-ში, ეს ძირითადად საწარმოს სექტორის მიღმა იყო. რა თქმა უნდა, NexentaStor და GreenBytes დაეხმარნენ ZFS-ს საწარმო სექტორში შესვლას, მაგრამ Oracle-ის მიერ Sun სერვერების მხარდაჭერის ნაკლებობამ ასევე დაიწყო გავლენა.

რა პრობლემები აქვს ZFS-ს ახლა?

OpenZFS პრაქტიკულად არაფრით განსხვავდება ფაილური სისტემისგან, რომელიც იყო ათი წლის წინ.

ბევრი სკეპტიკურად უყურებს დედუპლიკაციას, რაც დიდ ძვირადღირებულ მეხსიერებას მოითხოვს. და მე ვგულისხმობ ძვირს: თითქმის ყველა ZFS FAQ ცალსახად მოითხოვს მხოლოდ ECC მეხსიერებას და მინიმუმ 8 GB. FreeNAS-თან ჩემი საკუთარი გამოცდილებიდან გამომდინარე, 32 GB კარგია აქტიური მცირე სერვერისთვის, რომელიც მუშაობს ZFS, და ეს ღირს $200-300 თუნდაც დღევანდელ ფასებში.

და ZFS არასოდეს ყოფილა ადაპტირებული ფლეშ მეხსიერებასთან, რომელიც ახლა ყველგან არის. მიუხედავად იმისა, რომ ფლეშ შეიძლება გამოყენებულ იქნას ZIL და L2ARC ქეშისთვის, ეს საეჭვო სარგებელია საკმარისი ოპერატიული მეხსიერების მქონე სისტემებისთვის და ZFS-ს არ აქვს ნამდვილი ჰიბრიდული შენახვის ფუნქცია. სასაცილოა, რომ ZFS-ის დოკუმენტაცია ყველგან არის ლაპარაკი მრავალ გიგაბაიტიან SLC ფლეშზე, როცა ბაზარზე უკვე არის მრავალ ტერაბაიტიანი 3D NAND დისკები. და არავინ საუბრობს NVMe-ზე, მიუხედავად იმისა, რომ ეს არის მაღალი დონის კომპიუტერების სტანდარტი.

ასევე არსებობს მოქნილობის საკითხი, უფრო სწორად მისი ნაკლებობა. მას შემდეგ რაც შექმნით ZFS მოცულობას, ის არსებითად ჩაკეტილია მთელი ცხოვრების განმავლობაში. შენახვის აუზის გაფართოების მხოლოდ სამი გზა არსებობს:

  • შეცვალეთ აუზში არსებული აბსოლუტურად ყველა დისკი უფრო დიდი მოცულობის დისკებით (რაც მაგარია, მაგრამ ძვირი).
  • შექმენით დისკის თანმიმდევრობა დისკების განსხვავებული ნაკრებით (რაც შეიძლება გამოიწვიოს დაუბალანსებელი შესრულება, ჭარბი რაოდენობა და სხვა პოტენციურად სულელური შეცდომები).
  • შექმენით ახალი აუზი და გადაიტანეთ მონაცემთა ნაკრები იქ zfs send ბრძანების გამოყენებით (ეს არის ის, რასაც ვაკეთებ, თუმცა აქ არის რამდენიმე ხრიკი).

მესამე მეთოდის გარდა, თქვენ არ გაქვთ ZFS აუზის შემცირება. კიდევ უფრო უარესი, თქვენ არ შეგიძლიათ შეცვალოთ მონაცემთა დაცვის ტიპი მთელი აუზის აღდგენის გარეშე, მეორე და მესამე პარიტეტული დისკის დამატების ჩათვლით. FreeNAS კეთილსინდისიერად ხარჯავს უზარმაზარ დროს, რათა თავიდან აიცილოს დამწყები RAID-Z1-ის გამოყენება და ჩივის, თუ ისინი მაინც აირჩევენ მას.

ეს ყველაფერი შეიძლება ჩანდეს როგორც პატარა, უმნიშვნელო კვიბლები, მაგრამ ერთად აღებული ისინი სუბიექტურად აგზავნიან ZFS-ს შუა საუკუნეებში Drobo-ს, Synology-ის ან თანამედროვე ღრუბლოვანი შენახვის სისტემების გამოყენების შემდეგ. ZFS-ით თქვენ უნდა „იყიდოთ დისკები, იყიდოთ ბევრი მეხსიერება, შექმნათ RAID მასივი და აღარასოდეს შეეხოთ მას“, რაც არ შეესაბამება თანამედროვე მეხსიერების გამოყენებას.

რა ვარიანტები?

ვფიქრობ, მე არ წარმოვადგინე ZFS ძალიან ხელსაყრელ ფონზე. ის ოდესღაც რევოლუციური იყო, მაგრამ ახლა იწყებს შეზღუდვების ჩვენებას და კონტექსტიდან ამოვარდნას თანამედროვე სამყაროში ფლეშ მონაცემთა შენახვის საშუალებით. ასე რომ, არსებობს რაიმე ალტერნატივა?

Linux-ს აქვს რამდენიმე წესიერი მოცულობის და ფაილური სისტემის მენეჯერები და უმეტესობა იყენებს LVM ან MD და ext4. ფაილური სისტემის ხალხი ძალიან აღფრთოვანებულია Btrfs-ით, რომელიც აერთიანებს მოცულობის მენეჯერის ფუნქციონირებას და ZFS-ის სტილის ფაილურ სისტემას, მაგრამ დამატებით მოქნილობასთან ერთად, რაც ReiserFS-ზე დაეშვა. და Btrfs ნამდვილად შეიძლებოდა გამხდარიყო „ZFS Linux-ისთვის“, მაგრამ განვითარება ახლახანს დაბრკოლდა, გასული წლის საშინელი შეცდომის შემდეგ RAID 5 და 6 რეიდების შედეგად მონაცემთა დაკარგვით, და მათ შესახებ თითქმის არაფერი ისმის. მაგრამ მე მაინც ვფიქრობ, რომ ხუთ წელიწადში Linux მომხმარებლებს Btrfs-ის გამოყენებას ვურჩევ, განსაკუთრებით კონტეინერებში გამოყენების მძლავრი პოტენციალით.

Windows-ისთვის, Microsoft ასევე აპირებს გამოაქვეყნოს თავისი შემდეგი თაობის ფაილური სისტემა, ReFS, B+ ხეების გამოყენებით (Btrfs-ის მსგავსი), გიჟური სკალირებისა და გამძლეობისა და მონაცემთა დაცვის ფუნქციებით. Storage Spaces-თან ერთად, Microsoft-ს ექნება Windows Server-ისთვის მომავალი თაობის შესანახი სისტემა, რომელსაც შეუძლია გამოიყენოს SSD-ები და 3D-XPoint, როგორც დონე ან ქეში.

და შემდეგ არის Apple, რომელიც, როგორც ამბობენ, რამდენჯერმე შეცვალა შენახვის სისტემა APFS-ზე გადაწყვეტამდე, რომელიც წელს გამოვიდა macOS High Sierra-ში. APFS მრავალი თვალსაზრისით ჰგავს Btrfs-სა და ReFS-ს, თუმცა ის განხორციელებულია სრულიად განსხვავებულად, მომხმარებლის მეტი ფოკუსით. მიუხედავად იმისა, რომ ის გარკვეულ სფეროებში უფრო დაბალია (მომხმარებლის მონაცემები არ არის შემოწმებული და შეკუმშვა არ არის მხარდაჭერილი), APFS არის ზუსტად ის სისტემა, რომელიც გჭირდებათ iOS და macOS-ისთვის. და APFS არის საბოლოო ლურსმანი "ZFS Mac OS X-ზე" იდეის კუბოში.

სამი ძირითადი ოპერაციული სისტემიდან თითოეულს ახლა აქვს შემდეგი თაობის ფაილური სისტემა (და მოცულობის მენეჯერი). Linux-ს აქვს Btrfs, Windows-ს აქვს ReFS და Storage Spaces, ხოლო macOS-ს აქვს APFS. როგორც ჩანს, FreeBSD დარჩა ZFS-ის ერთგული, მაგრამ ეს ბაზრის მცირე ნაწილია. და ყველა საწარმოს კლასის სისტემა უკვე ბევრად აღემატება იმას, რასაც ZFS და ZFS-ზე დაფუძნებული საწარმოს კლასის სისტემები Sun, Nexenta და iXsystems-ისგან შეუძლიათ.

მაგრამ ZFS ჯერ კიდევ ბევრად აღემატება ძველ ფაილურ სისტემებს სახლის მომხმარებლისთვის. მთლიანობის შემოწმების, ჭარბი და შეცდომების აღდგენის ნაკლებობის გამო, NTFS (Windows), HFS+ (macOS) და ext3/4 (Linux) სრულიად უვარგისია მონაცემთა გრძელვადიანი შენახვისთვის. და ReFS და APFSც კი, მთლიანობის შემოწმების არარსებობის გამო, არ არის შესაფერისი იქ, სადაც მონაცემთა დაკარგვა მიუღებელია.

ავტორის პოზიცია: გამოიყენეთ ZFS (ამჟამად)

სამწუხაროა იმის თქმა, მაგრამ 2017 წლიდან ZFS არის საუკეთესო ფაილური სისტემა გრძელვადიანი, ფართომასშტაბიანი მონაცემთა შენახვისთვის. მიუხედავად იმისა, რომ ზოგჯერ რთულია მუშაობა (გარდა FreeBSD-ის, Solaris-ისა და სპეციალური მოწყობილობებისა), ZFS-ის საიმედოობა და დადასტურებული ბუნება მას აქცევს ერთადერთ სანდო ინსტრუმენტად საწარმოს შენახვის სისტემების გარეთ მონაცემების შესანახად. ყოველივე ამის შემდეგ, მონაცემთა საიმედოდ შენახვა ერთადერთია, რაც ფაილურმა სისტემამ ნამდვილად უნდა გააკეთოს.

*nix სისტემების სამყაროში ZFS და Btrfs ფაილური სისტემები სულ უფრო პოპულარული ხდება. ეს პოპულარობა კარგად არის დამსახურებული - მათი წინამორბედებისგან განსხვავებით, ისინი მოკლებულნი არიან გარკვეულ პრობლემებს და აქვთ მრავალი უდავო უპირატესობა. და არც ისე დიდი ხნის წინ მათ მიენიჭათ სტაბილური სტატუსი. ამ ყველაფერმა მიბიძგა დამეწერა ეს სტატია.

გაფრთხილება!

აქ აღწერილი ზოგიერთ ბრძანებას შეუძლია შეუქცევადად გაანადგუროს თქვენი მონაცემები. სამჯერ შეამოწმეთ თქვენი შეყვანა Enter-ზე დაჭერამდე.

შესაძლოა, სანამ პრაქტიკაზე გადავიდოდეთ, საჭიროა გარკვეული ახსნა-განმარტების მიცემა, თუ რა არის ახალი თაობის ფაილური სისტემები. დავიწყებ ZFS-ით. ეს FS შემუშავებულია Solaris-ისთვის და ამჟამად არის ჩანგალი OpenZFS ვერსიაში, რადგან Oracle-მა დახურა წყაროს კოდი. მომავალში ZFS მოიხსენიება როგორც ჩანგალი. აქ მოცემულია ZFS-ის მხოლოდ რამდენიმე ძირითადი მახასიათებელი:

  • ფაილური სისტემის მაქსიმალური ზომა არის უზარმაზარი, წარმოუდგენელ წერტილამდე;
  • შესანახი აუზები, რომლებიც საშუალებას გაძლევთ დააკავშიროთ რამდენიმე სხვადასხვა მოწყობილობა;
  • ფაილური სისტემის დონის შემოწმება, ალგორითმის არჩევის შესაძლებლობით;
  • COW პრინციპზე დაფუძნებული - ახალი მონაცემები არ გადაწერს ძველს, არამედ მოთავსებულია სხვა ბლოკებში, რაც ხსნის შესაძლებლობებს, როგორიცაა სნეპშოტები და მონაცემთა დედუბლირება;
  • ფრენის დროს მონაცემთა შეკუმშვა - როგორც საკონტროლო ჯამების შემთხვევაში, მხარდაჭერილია რამდენიმე ალგორითმი;
  • ფაილური სისტემის მართვის შესაძლებლობა გადატვირთვის გარეშე.

Btrf-ების შემუშავება დაიწყო Oracle-ის მიერ ZFS-ის წინააღმდეგ - Sun-ის შეძენამდეც კი. მე არ აღვწერ მის მახასიათებლებს - ისინი, ზოგადად, მსგავსია ZFS-სა და Btrfs-ში. განსხვავებები ZFS-ისგან შემდეგია:

  • ფაილის ვერსიების მხარდაჭერა (ე.წ. Btrfs ტერმინოლოგიით თაობები) - შესაძლებელია იმ ფაილების სიის ნახვა, რომლებიც შეიცვალა სნეპშოტის შექმნის შემდეგ;
  • zvol-ის, ვირტუალური ბლოკის მოწყობილობების მხარდაჭერის ნაკლებობა, რომლებზეც შეგიძლიათ განათავსოთ, მაგალითად, სვოპ დანაყოფი - მაგრამ ეს ნაკლებობა სრულად ანაზღაურდება loopback მოწყობილობებით.

წარმოგიდგენთ ZFSonLinux-ს

ZFSonLinux-ის ინსტალაციისთვის დაგჭირდებათ 64-ბიტიანი პროცესორი (32 შესაძლებელია, მაგრამ დეველოპერები ამ შემთხვევაში არ გვპირდებიან სტაბილურობას) და, შესაბამისად, 64-ბიტიანი განაწილება მინიმუმ 2.6.26 ბირთვით - მე გამოვიყენე Ubuntu. 13.10. ასევე უნდა იყოს საკმარისი მეხსიერება - მინიმუმ 2 GB. ვარაუდობენ, რომ მოდულების და ბირთვის შესაქმნელად და კომპილაციისთვის საჭირო ძირითადი პაკეტები უკვე დაინსტალირებულია. ჩამოტვირთეთ დამატებითი პაკეტები და ჩამოტვირთეთ საჭირო ტარბოლები:

$ sudo apt-get დააინსტალირე უცხო zlib1g-dev uuid-dev libblkid-dev libselinux-dev გაყოფილი lsscsi wget $ mkdir zfs && cd $_ $ wget http://bit.ly/18CpniI $ wget http://bit.ly/ 1cEzO0V

ჩვენ ვხსნით ორივე არქივს, მაგრამ ჯერ ვაგროვებთ SPL - Solaris თავსებადობის ფენას და მხოლოდ ამის შემდეგ თავად ZFS-ს. მე აღვნიშნავ, რომ რადგან ჩვენ ვაინსტალირებთ ZFSonLinux-ის უახლეს ვერსიას, DKMS (მექანიკა, რომელიც საშუალებას გაძლევთ ავტომატურად აღადგინოთ ბირთვის მიმდინარე მოდულები მოწყობილობის დრაივერებით, ბირთვის ვერსიის განახლების შემდეგ) მიუწვდომელია და თუ ბირთვი განახლებულია, მოგიწევთ ხელახლა შეკრიბეთ პაკეტები ხელით.

$ tar -xzf spl-0.6.2.tar.gz $ tar -xzf zfs-0.6.2.tar.gz $ cd spl-0.6.2 $ ./configure $ make deb-utils deb-kmod

ZFS-ის შედგენამდე თქვენ უნდა დააინსტალიროთ სათაურები და ამავდროულად დავაინსტალირებთ დანარჩენ ახლად შედგენილ პაკეტებს:

$ სუდო დპკგ -ი *.დებ

დაბოლოს, ჩვენ ვაწყობთ და ვამონტაჟებთ ZFS-ს:

$ cd ../zfs-0.6.2 $ ./configure $ make deb-utils deb-kmod $ sudo dpkg -i *.deb


root ფაილური სისტემის გადატანა ZFS-ზე დაშიფვრის და RAIDZ შექმნით

ვთქვათ, გსურთ უსაფრთხო, დაშიფრული, მაგრამ ამავე დროს შეცდომის ტოლერანტული ფაილური სისტემა. კლასიკური ძველი თაობის ფაილური სისტემების შემთხვევაში, თქვენ მოგიწევთ არჩევანის გაკეთება დაშიფვრასა და შეცდომის ტოლერანტობას შორის, რადგან ეს რაღაცეები გარკვეულწილად შეუთავსებელია. ZFS-ში კი შესაძლებელია მათი „წებოვნება“. ამ ფაილური სისტემის ამჟამინდელი საკუთრების განხორციელება მხარს უჭერს დაშიფვრას. აუზის 28-ე ვერსიით ღია იმპლემენტაცია ამას არ უჭერს მხარს - მაგრამ არაფერი გიშლით ხელს cryptsetup-ის გამოყენებაში LUKS ტომის (ან რამდენიმე ტომის) შესაქმნელად და მათ თავზე აუზის განსათავსებლად. რაც შეეხება შეცდომის ტოლერანტობას, ZFS მხარს უჭერს მრავალ დისკის მასივების შექმნას. ამ ტექნოლოგიას RAIDZ ჰქვია. მისი სხვადასხვა ვარიანტები საშუალებას აძლევს მას გადაურჩოს ერთიდან სამ დისკის უკმარისობას და ის, ZFS-ის ზოგიერთი მახასიათებლის გამო, თავისუფალია ტრადიციული ზოლიანი + პარიტეტული RAID მასივების ერთ-ერთი ფუნდამენტური მინუსისგან - ჩაწერის ხვრელი (სიტუაცია RAID 5 / RAID 6, როდესაც აქტიური ოპერაციების ჩაწერისა და გამორთვის დროს, დისკებზე მონაცემები საბოლოოდ განსხვავებულია).

ინფორმაცია

დაშიფვრა ანელებს მონაცემთა დამუშავებას. ის არ უნდა იქნას გამოყენებული ძველ კომპიუტერებზე.

რა თქმა უნდა, ყველაზე ადვილია, თუ სისტემა არ გაქვთ - ამ შემთხვევაში ნაკლები შეწუხება მოგიწევთ. მაგრამ ჩვენ არ ვცხოვრობთ იდეალურ სამყაროში, ამიტომ მე გეტყვით, როგორ გადავიტანოთ უკვე დაინსტალირებული სისტემა /boot დანაყოფის გარეშე RAIDZ მასივში LUKS ტომების თავზე.

უპირველეს ყოვლისა, თქვენ თავად უნდა შექმნათ ეს დანაყოფი - ამის გარეშე გადაცემა შეუძლებელი იქნება, რადგან სისტემა უბრალოდ არ ჩაიტვირთება. მოდით, სიმარტივისთვის დავუშვათ, რომ დისკზე არის ერთი დანაყოფი Ubuntu-ით და გვინდა შევქმნათ პირველი დონის RAIDZ (RAID 5-ის ანალოგიურად, მას მინიმუმ სამი მოწყობილობა სჭირდება, მაგრამ აზრს ვერ ვხედავ ამის გაკეთებაში. RAIDZ უფრო მაღალ დონეზე სახლში). თქვენი სასურველი დანაყოფის რედაქტორის გამოყენებით, ჩვენ ვქმნით ორ დანაყოფს - ერთი ზომით 256–512 მბ, სადაც განთავსდება /boot და მეორე ზომით არანაკლებ მიმდინარე root ერთი და ვიმეორებთ ბოლო პროცედურას ყველაზე. სამი მყარი დისკი. მოდით ხელახლა წავიკითხოთ დანაყოფის ცხრილი ბრძანებით

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

და შექმენით ფაილური სისტემა (ext3) პატარა დანაყოფზე:

# mke2fs -j /dev/disk/by-id/ata-VBOX_HARDDISK_VB203f5b52-a7ff5309-part2 -L ჩატვირთვა

რა თქმა უნდა, თქვენს შემთხვევაში მყარი დისკის ID იქნება განსხვავებული. შემდეგი, თქვენ უნდა დაშიფროთ დანაყოფი, რომელზეც განთავსებული იქნება LUKS ტომი და გაიმეოროთ ეს პროცედურა ყველა სხვა ტიხრისთვის, რომელიც საბოლოოდ მასპინძლობს RAIDZ მასივს:

# 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 -ssha256 luksFormat /dev/disk/by-id/ata-VBOX_HARDDISK_VB781404e0-0dba6250-part1

დაშიფრული ტომების დაკავშირება:

# cryptosetup luksOpen /dev/disk/by-id/ata-VBOX_HARDDISK_VB203f5b52-a7ff5309-part3 crypto0 # cryptosetup luksOpen /dev/disk/by-id/ata-VBOX_HARDDISK_VB2fdd0cb1crypto1-d0 /დისკი/by- id/ata-VBOX_HARDDISK_VB781404e0-0dba6250-part1 crypto2

და შექმენით ZFS აუზი:

# zpool შექმნა -o ashift=12 zroot raidz dm-name-crypto0 dm-name-crypto1 dm-name-crypto2

შემდეგი, ჩვენ ვქმნით ორ ჩადგმულ ფაილურ სისტემას:

# zfs შექმნა zroot/ROOT # zfs შექმნა zroot/ROOT/ubuntu-1310-root

მოდით გამოვცვალოთ ყველა ZFS ფაილური სისტემა და დავაყენოთ ფაილური სისტემის და აუზის თვისებები:

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

და ბოლოს, ჩვენ ვახორციელებთ აუზის ექსპორტს:

# zpool ექსპორტი zroot



სისტემის მიგრაცია და კონფიგურაცია

პირველ რიგში, დააკოპირეთ /boot დირექტორია დაუშიფრულ დანაყოფში, რათა იქ დააინსტალიროთ ჩამტვირთავი:

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

ამის შემდეგ, ჩვენ გადავიტანთ grub-ს ცალკეულ /boot დანაყოფზე, რისთვისაც ხაზს დავამატებთ /etc/fstab-ს

# <...>LABEL=ჩატვირთვა /ჩატვირთვის ext3 შეცდომები=remount-ro 0 0

დააინსტალირეთ და აღადგინეთ grub კონფიგურაცია:

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

შესამოწმებლად, გადატვირთეთ. თუ ყველაფერი კარგადაა, წაშალეთ ძველი შიგთავსი /boot დირექტორიაში, დაიმახსოვრეთ, რომ ჯერ დანაყოფის დემონტაჟი უნდა მოხდეს.

უბუნტუს კლონირების დროა. კლონირების მთელი პროცესი აღწერილია სტატიის სრულ ვერსიაში, რომელიც შეგიძლიათ იხილოთ ვებგვერდზე ][, აქ ასევე შევეხები ZFS-თან დაკავშირებულ ზოგიერთ დახვეწილობას. ZFS აუზიდან ნორმალური ჩატვირთვისთვის საჭიროა რამდენიმე initramfs სკრიპტი. საბედნიეროდ, თქვენ არ გჭირდებათ მათი გამოგონება - ისინი GitHub-ზე არიან. ჩამოტვირთეთ საცავი (ყველა მოქმედება შესრულებულია chroot-ში):

# git კლონი http://bit.ly/1esoc8i

და დააკოპირეთ ფაილები საჭირო ადგილებში. ერთადერთი ცვლილება, რაც მე გავაკეთე, იყო rpool pool-ის შეცვლა zroot-ით. ახლა თქვენ უნდა ჩაწეროთ ჰოსტიდი /etc/hostid ფაილში. ეს უნდა გაკეთდეს, რადგან ZFS პორტირებულია Solaris-დან და თავსებადობის ფენა ამას მოითხოვს:

# hostid >/etc/hostid

და ბოლოს, ჩვენ უნდა შევქმნათ initramfs. არასოდეს გამოიყენოთ განახლება-initramfs. ის გადაწერს არსებულ ფაილს და თუ სირთულეები წარმოიქმნება, ნორმალური სისტემიდან ჩატვირთვა პრობლემურია. ამის ნაცვლად გამოიყენეთ ბრძანება

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

/boot დანაყოფი უნდა იყოს დამონტაჟებული.

შემდეგ თქვენ უნდა დაამატოთ მენიუს ელემენტი grub-ში. საკმაოდ რთული კონფიგურაციის გამო (სამი კრიპტოტომი, რომელთა თავზე არის ფაილური სისტემა, რომელიც არ არის საკმაოდ დამახასიათებელი Linux-ისთვის), ეს ვერ მოხერხდა chroot-ში, ამიტომ ჩვენ გამოვდივართ მთავარ (ამჟამად) სისტემაში და დაამატეთ რაღაც შემდეგი ხაზების მსგავსი:

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

ჩვენ ვაწარმოებთ update-grub-ს, გადატვირთეთ, ვირჩევთ მენიუს ახალ ელემენტს და ვხალისობთ.

ZFS-ის დაყენება და სასარგებლო ხრიკები Btrfs-ით

უმეტეს შემთხვევაში, სახლის მომხმარებლები არ აკონფიგურირებენ თავიანთ FS-ს. თუმცა, ნაგულისხმევი ZFS პარამეტრები ყოველთვის არ არის შესაფერისი სახლის გამოყენებისთვის. ასევე არის საკმაოდ საინტერესო ფუნქციები, რომელთა გამოყენება მოითხოვს მოცემულ ფაილურ სისტემასთან მუშაობის გარკვეულ უნარებს. შემდეგ, მე აღვწერ ZFS-ის დახვეწას სახლის საჭიროებებზე და ამ მახასიათებლებზე.

Btrfs-ის გამოყენების შემთხვევაში განსაკუთრებული პრობლემები არ შეინიშნება. მიუხედავად ამისა, ზოგიერთი დახვეწილობა მაინც ხდება - განსაკუთრებით იმ შემთხვევაში, თუ არსებობს სურვილი არა მხოლოდ „დააყენო და დაივიწყო“, არამედ გამოიყენო ახალი შესაძლებლობები. ზოგიერთ მათგანზე ქვემოთ ვისაუბრებ.

გამორთეთ ფაილზე წვდომის დროის ცვლილებები და ოპტიმიზაცია SSD დისკებისთვის

მოგეხსენებათ, *nix სისტემებში, ფაილებზე წვდომისას, მათზე წვდომის დრო იცვლება. ეს ყოველ ჯერზე მედიაში ჩანაწერის პროვოცირებას ახდენს. თუ ერთდროულად ბევრ ფაილთან მუშაობთ ან გაქვთ SSD დისკი, ეს შეიძლება არ იყოს მისაღები. კლასიკურ ფაილურ სისტემებზე, atime წერის გამორთვისთვის, თქვენ უნდა დაამატოთ noatime ვარიანტი mount ბრძანების ვარიანტებში ან /etc/fstab. ZFS-ში მისი გამორთვისთვის გამოიყენება შემდეგი ბრძანება (რა თქმა უნდა, თქვენს შემთხვევაში FS შეიძლება განსხვავებული იყოს):

# zfs მითითებული atime=off zroot/ROOT/ubuntu-1310-root

Btrfs-ში ზემოაღნიშნული noatime ვარიანტის გარდა არის ssd ვარიანტი და უფრო ოპტიმიზაცია ssd_spread. პირველი მათგანი, დაწყებული kernel 2.6.31-დან, ჩვეულებრივ დაინსტალირებულია ავტომატურად, მეორე განკუთვნილია იაფი SSD დისკებისთვის (აჩქარებს მათ მუშაობას).

ZFS - ფაილის დუბლირება

ძალიან მნიშვნელოვან მონაცემებთან მუშაობისას, ხანდახან ჩნდება საშინელი აზრი, რომ ელექტროენერგია გაითიშება ან ერთ-ერთი მყარი დისკი გაფუჭდება. პირველი ძალიან შესაძლებელია რუსეთის პირობებში და მეორე, თუმცა ნაკლებად სავარაუდოა, ასევე ხდება. საბედნიეროდ, ZFS დეველოპერები, როგორც ჩანს, ამას არაერთხელ შეხვდნენ და დაამატეს მონაცემთა დუბლირების ვარიანტი. ამ შემთხვევაში, თუ შესაძლებელია, ფაილები განთავსდება დამოუკიდებელ დისკებზე. დავუშვათ, რომ თქვენ გაქვთ FS zroot/HOME/home-1310. დუბლირების დროშის დასაყენებლად, აკრიფეთ შემდეგი ბრძანება:

# zfs ნაკრები ასლები=2 zroot/HOME/home-1310

უფრო მეტიც, თუ ორი ასლი არ არის საკმარისი, შეგიძლიათ მიუთითოთ ნომერი 3. ამ შემთხვევაში, სამმაგი ზედმეტობა შესრულდება და თუ სამი მყარი დისკიდან ორი, რომელზეც ეს ასლებია განთავსებული, ვერ მოხერხდება, ZFS მაინც აღადგენს მათ.

ავტომატური მონტაჟის გამორთვა ZFS-ში

აუზის შეერთებისას, ნაგულისხმევად, ყველა ჩადგმული ფაილური სისტემა ავტომატურად დამონტაჟებულია. ამან შეიძლება გამოიწვიოს გარკვეული დაბნეულობა, რადგან, მაგალითად, ზემოაღნიშნული კონფიგურაციის შემთხვევაში, მომხმარებელს არ სჭირდება წვდომა არც zroot-ზე და არც zroot/ROOT-ზე. შესაძლებელია ავტომატური მონტაჟის გამორთვა შემდეგი ორი ბრძანების გამოყენებით (ამ შემთხვევაში):

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

მონაცემთა შეკუმშვა

ZFS ასევე მხარს უჭერს მონაცემთა შეკუმშვას. დაშიფრულ ტომებზე, ამას მხოლოდ ენტროპიის გაზრდა აქვს აზრი (და ეს ფაქტი არ არის), მაგრამ ზოგადად, ნელი მედიისთვის, შეკუმშვა აუმჯობესებს შესრულებას და მნიშვნელოვნად დაზოგავს დისკზე ადგილს. ამავდროულად, ახლა, როდესაც მყარი დისკის სიმძლავრე უკვე იზომება ტერაბაიტებში, ნაკლებად სავარაუდოა, რომ ვინმეს ნამდვილად სჭირდება სივრცის დაზოგვა და ეს უფრო დიდ გავლენას ახდენს შესრულებაზე და ოპერატიული მეხსიერების მოხმარებაზე. თუ ეს გჭირდებათ, შეგიძლიათ ჩართოთ შემდეგნაირად:

# zfs დააყენეთ შეკუმშვა=zroot/ROOT/var-log-ზე

Btrfs-ში, შეკუმშვის ჩასართავად, თქვენ უნდა დააყენოთ შეკუმშვის ვარიანტი /etc/fstab-ში.

სნეპშოტების ავტომატური შექმნა ZFS-ში

მოგეხსენებათ, ZFS საშუალებას გაძლევთ შექმნათ სნეპშოტები. თუმცა მათი კალმებით შექმნა ეზარება და ამის უბრალოდ დავიწყების შესაძლებლობა არსებობს. Solaris-ს აქვს Time Slider სერვისი ამ პროცედურის ავტომატიზაციისთვის, მაგრამ ეს კატასტროფაა! - მიუხედავად იმისა, რომ ის იყენებს ZFS ფუნქციებს, ის არ არის მისი ნაწილი, ამიტომ არ შედის ZFSonLinux-ში. მაგრამ არ ინერვიულოთ: არსებობს სკრიპტი მათი ავტომატურად შესაქმნელად Linux-ისთვისაც. მოდით გადმოვწეროთ და დავაყენოთ საჭირო უფლებები:

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

მოდით, ჯერ შევცვალოთ სნეპშოტების პრეფიქსი, რადგან ნაგულისხმევად ის არ არის განსაკუთრებით „მითითებული“. ამისათვის შეცვალეთ opt_prefix პარამეტრი სკრიპტში zfs-auto-snap-დან snapshot-ზე. შემდეგი, მოდით დავაყენოთ რამდენიმე ფაილური სისტემის ცვლადი:

# zfs set com.sun:auto-snapshot=true zroot/ROOT/ubuntu-1310-root # zfs set snapdir=visible zroot/ROOT/ubuntu-1310-root

პირველი პარამეტრი საჭიროა სკრიპტისთვის, მეორე კი პირდაპირ წვდომას იძლევა სნეპშოტებზე, რაც ასევე საჭიროა სკრიპტისთვის.

ახლა თქვენ შეგიძლიათ შექმნათ სკრიპტი cron-ისთვის (/etc/cron.daily/autosnap). განვიხილოთ შემთხვევა, როდესაც თქვენ გჭირდებათ სნეპშოტების შექმნა ყოველდღე და მათი შენახვა ერთი თვის განმავლობაში:

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

შექმნილი სნეპშოტების სანახავად გამოიყენეთ zfs list -t snapshot ბრძანება, ხოლო მდგომარეობის აღსადგენად გამოიყენეთ zfs rollback snapshot_name.

ZFS - რთული მაგალითი

ქვემოთ მოცემულია ბრძანებები, რომლებიც ქმნიან მრავალ ფაილურ სისტემას აუზში სხვადასხვა მიზნებისთვის და აჩვენებს ZFS-ის მოქნილობას.

# zfs create -o compression=on -o mountpoint=/usr zroot/ROOT/usr # zfs create -o compression=on -o setuid=off -o mountpoint=/usr/local /zroot/ROOT/usr-local # zfs create -o compression=on -o exec=off -o setuid=off -o mountpoint=/var/crash zroot/ROOT/var-crash # zfs create -o exec=off -o setuid=off -o mountpoint=/var /db zroot/ROOT/var-db # zfs create -o compression=on -o exec=off -o setuid=off -o mountpoint=/var/log zroot/ROOT/var-log # zfs create -o compression=gzip -o exec=off -o setuid=off -o mountpoint=/var/mail zroot/ROOT/var-mail # zfs create -o exec=off -o setuid=off -o mountpoint=/var/run zroot/ROOT/ var-run # zfs შექმნა -o exec=off -o setuid=off -o copies=2 -o mountpoint=/home zroot/HOME/home # zfs შექმნა -o exec=off -o setuid=off -o ასლები=3 -o mountpoint=/home/rom zroot/HOME/home-rom

Btrfs დეფრაგმენტაცია

Btrfs-ში დეფრაგმენტაცია არც ისე აუცილებელია, მაგრამ ზოგიერთ შემთხვევაში ეს საშუალებას გაძლევთ გაათავისუფლოთ დაკავებული სივრცე. მისი განხორციელება შესაძლებელია მხოლოდ დაყენებულ სისტემაზე. აღვნიშნავ, რომ დეფრაგმენტაციის დროს მონაცემებზე წვდომა შენარჩუნებულია - როგორც კითხვა, ასევე წერა. დეფრაგმენტაციის პროცედურის დასაწყებად გამოიყენეთ შემდეგი ბრძანება:

# btrfs ფაილური სისტემის დეფრაგმენტი /

ძველ ბირთვებზე, ამ პროცედურამ წაშალა COW-ის ყველა ასლი, როგორიცაა სნეპშოტები და დედუპლიკირებული მონაცემები, ასე რომ, თუ მათ იყენებთ 2.6.37-ზე ძველ ბირთვებზე, დეფრაგმენტაცია მხოლოდ ზიანს მოგაყენებთ.

RAID Btrfs-ზე

როგორც ZFS-ის შემთხვევაში, Btrfs მხარს უჭერს მრავალტომიან მასივებს, მაგრამ ZFS-ისგან განსხვავებით მათ კლასიკურად უწოდებენ. თუმცა, ამ დროისთვის მხარდაჭერილია მხოლოდ RAID 0, RAID 1 და ორივეს კომბინაცია, RAID 5 ჯერ კიდევ ალფა ტესტირებაშია. ახალი RAID 10 მასივის შესაქმნელად, უბრალოდ გამოიყენეთ ეს ბრძანება (თქვენს მოწყობილობებთან ერთად):

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

კარგად, თუ გჭირდებათ არსებული ფაილური სისტემის RAID-ად გადაქცევა, მაშინ ამისათვის არის ბრძანებები:

# btrfs მოწყობილობის დამატება /dev/sdb1 /dev/sdc1 /dev/sdd1 / # btrfs ბალანსის დაწყება -dconvert=raid10 -mconvert=raid10 /

პირველი ბრძანება ამატებს მოწყობილობებს ფაილურ სისტემაში, ხოლო მეორე აბალანსებს ყველა მონაცემს და მეტამონაცემებს, რათა ამ ტომების ნაკრები გადაიყვანოს RAID 10 მასივში.

Btrfs კადრები

ბუნებრივია, Btrfs მხარს უჭერს სნეპშოტებს - და ჩვეულებრივი სნეპშოტების გარდა, ხელმისაწვდომია სნეპშოტები ჩაწერის შესაძლებლობებით (უფრო მეტიც, ისინი იქმნება ნაგულისხმევად). სნეპშოტების შესაქმნელად გამოიყენეთ შემდეგი ბრძანება:

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

დამატებითი ინფორმაცია სნეპშოტების შექმნის შესახებ, როგორც მექანიკური, ასევე ავტომატური, შეგიძლიათ იხილოთ სტატიაში „Airbag“, რომელიც გამოქვეყნდა 2013 წლის აპრილის ნომერში ][. აქ მე გეტყვით, თუ როგორ, თუ თქვენ გაქვთ სნეპშოტი, შეგიძლიათ თვალყური ადევნოთ რომელი ფაილები შეიცვალა მისი შექმნის შემდეგ. ამ მიზნით Btrfs-ს აქვს ფაილების ე.წ. ეს ფუნქცია გამოიყენება შიდა მიზნებისთვის, მაგრამ არის ბრძანება, რომელიც საშუალებას გაძლევთ ნახოთ ბოლო ცვლილებების სია - ჩვენ მას გამოვიყენებთ. ჯერ გავარკვიეთ ფაილების მიმდინარე თაობა:

# btrfs subvol find-new / 99999999

თუ ასეთი თაობა არ იქნება (რაც ფაქტიურად გარკვეულია), ბოლო გამოვა. ახლა მოდით გავუშვათ იგივე ბრძანება სნეპშოტზე:

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

თუ თაობები განსხვავდებიან და განსხვავდებიან, მაშინ ჩვენ გადავხედავთ რა ფაილები შეიცვალა სნეპშოტის შექმნის შემდეგ. ჩემს შემთხვევაში ბრძანება იყო შემდეგი:

#btrfs subvol find-new/96 | awk "( ბეჭდვა $17 )" | დალაგება | უნიკ

NILFS2 არის კიდევ ერთი ფაილური სისტემა COW მხარდაჭერით

დაწყებული kernel 2.6.30-ით, Linux-მა დაამატა მხარდაჭერა სხვა FS-ისთვის - NILFS2. ეს აბრევიატურა ნიშნავს ჟურნალის სტრუქტურირებული ფაილური სისტემის ახალ განხორციელებას. ამ FS-ის მთავარი მახასიათებელია ის, რომ რამდენიმე წამში ერთხელ მასში ავტომატურად იქმნება საგუშაგოები - კადრების სავარაუდო ანალოგი ერთი განსხვავებით: გარკვეული დროის შემდეგ ისინი წაიშლება ნაგვის შემგროვებლის მიერ. თუმცა მომხმარებელს შეუძლია გადაიყვანოს საგუშაგო კადრში, რის შედეგადაც იგი უხილავი ხდება ნაგვის შემგროვებლისთვის, ან პირიქით. ამრიგად, NILFS2 შეიძლება ჩაითვალოს ერთგვარ „ვიკიპედიად“, სადაც ნებისმიერი ცვლილება ჩაიწერება. ამ ფუნქციის გამო - ნებისმიერი ახალი მონაცემების ჩაწერა არა არსებულზე, არამედ ახალ ბლოკებში - იდეალურია SSD დისკებისთვის, სადაც, როგორც მოგეხსენებათ, მონაცემების გადაწერა არ არის მისასალმებელი.

დიახ, NILFS2 არ არის ისეთი ცნობილი, როგორც ZFS ან Btrfs. მაგრამ ზოგიერთ შემთხვევაში მისი გამოყენება უფრო გამართლებული იქნება.

დასკვნა

შეიძლება სუბიექტურად მომეჩვენოს, მაგრამ ZFS, Btrfs-თან შედარებით, იმარჯვებს. ჯერ ერთი, Btrfs-ის ზოგიერთი მახასიათებელი ჯერ კიდევ ადრეულ ეტაპზეა, მიუხედავად იმისა, რომ ხუთი წელზე მეტია. მეორეც, ZFS, ყველა სხვა თანაბარი, უფრო გამოცდილია. და მესამე, არსებობს ZFS-თან მუშაობის მეტი ინსტრუმენტი და ასევე მისი შესაძლებლობები.

მეორეს მხრივ, რაც არ უნდა კარგი იყოს ZFS, ლიცენზირების მიზეზების გამო ის ნაკლებად სავარაუდოა, რომ ოდესმე შევიდეს მთავარ ბირთვში. ასე რომ, თუ სხვა კონკურენტი არ გამოჩნდება, თქვენ მოგიწევთ გამოიყენოთ Btrfs.

Facebook და Btrfs

2013 წლის ნოემბერში Btrfs განვითარების ჯგუფის ლიდერი კრის მეისონი გადავიდა Facebook-ზე. იგივე მოიქცა ჯოზეფ ბაციკი, btrfs-next ფილიალის შემნარჩუნებელი. ისინი გახდნენ კომპანიის ქვედა დონის განვითარების სპეციალიზირებული განყოფილების ნაწილი, სადაც ახლა მუშაობენ Linux-ის ბირთვზე - კერძოდ, მუშაობენ Btrfs-ზე. დეველოპერებმა ასევე განაცხადეს, რომ Facebook დაინტერესებულია Btrfs-ის განვითარებით, ამიტომ საზოგადოებას არანაირი შეშფოთების საფუძველი არ აქვს.