Linux 0.8.0-da ZFS-nin buraxılışı, Linux nüvəsi üçün ZFS tətbiqləri

Təxminən iki illik inkişafdan sonra təqdim etdi buraxın Linux 0.8.0-da ZFS, Linux nüvəsi üçün modul kimi paketlənmiş ZFS fayl sisteminin tətbiqi. Modul 2.6.32-dən 5.1-ə qədər Linux nüvələri ilə sınaqdan keçirilmişdir. Hazır quraşdırma paketləri tezliklə gələcək hazırlanacaq Debian, Ubuntu, Fedora, RHEL/CentOS daxil olmaqla əsas Linux paylamaları üçün. ZFS on Linux modulu artıq Debian, Ubuntu, Gentoo, Sabayon Linux və ALT Linux paylamalarına daxil edilib.

Linux-da ZFS-in bir hissəsi olaraq həm fayl sisteminin işləməsi, həm də həcm menecerinin işləməsi ilə əlaqəli ZFS komponentlərinin tətbiqi hazırlanmışdır. Xüsusilə, aşağıdakı komponentlər həyata keçirilir: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) və ZPL (ZFS POSIX Layer). Bundan əlavə, layihə ZFS-dən Luster klaster fayl sistemi üçün backend kimi istifadə etmək imkanı verir. Layihənin işi OpenSolaris layihəsindən idxal edilmiş və Illumos icmasının təkmilləşdirmələri və düzəlişləri ilə təkmilləşdirilmiş orijinal ZFS koduna əsaslanır. Layihə ABŞ Energetika Nazirliyi ilə müqavilə əsasında Livermor Milli Laboratoriyasının əməkdaşlarının iştirakı ilə hazırlanır.

Kod pulsuz CDDL lisenziyası altında paylanır, bu GPLv2 ilə uyğun gəlmir, bu da Linux-da ZFS-nin Linux nüvəsinin əsas qoluna inteqrasiya olunmasına imkan vermir, çünki GPLv2 və CDDL lisenziyaları altında kodu qarışdırmağa icazə verilmir. Bu lisenziya uyğunsuzluğunun qarşısını almaq üçün CDDL lisenziyası altında bütün məhsulu nüvədən ayrıca təchiz edilmiş ayrıca yüklənə bilən modul kimi yaymaq qərara alındı. Linux kod bazasında ZFS-nin sabitliyi Linux üçün digər fayl sistemləri ilə müqayisə oluna bilən kimi qiymətləndirilir.

Əsas dəyişikliklər:

  • Fayl sistemi və bölmələr səviyyəsində saxlanılan məlumatların şifrələnməsi üçün daxili dəstək əlavə edildi. Standart şifrələmə alqoritmi aes-256-ccm-dir. Şifrələmə açarlarını yükləmək üçün "zfs load-key" əmri təklif edilmişdir;
  • 'zfs send' və 'zfs receive' əmrlərini yerinə yetirərkən şifrələnmiş məlumatların ötürülməsi imkanı həyata keçirilib. “-w” seçimini təyin edərkən, artıq hovuzda şifrələnmiş məlumatlar aralıq deşifrə edilmədən olduğu kimi başqa hovuza ötürülür. Bu cür kopyalama ilə məlumatlar göndərənin açarı ilə qorunur, bu, etibarsız sistemlərə ehtiyat nüsxə üçün bu rejimdən istifadə etməyə imkan verir (alıcının kompromissi olduqda, təcavüzkar açar olmadan məlumatlara daxil ola bilməyəcək);
  • Həm ayrı-ayrılıqda, həm də güzgünün bir hissəsi kimi birləşdirilən əsas diskləri yaddaş hovuzundan çıxarmaq üçün əlavə dəstək. Silinmə "zpool remove" əmri ilə həyata keçirilir. Silinmə prosesi məlumatı xaric edilmiş diskdən hovuzda qalan əsas disklərə köçürür;
  • Hovuzun cari vəziyyətini saxlamaq üçün "zpool checkpoint" əmri əlavə edildi (bütün hovuzun snapshotı yaradılır). Bu xüsusiyyət normal şəraitdə geri dönməz dəyişikliklərə səbəb olan potensial təhlükəli mürəkkəb inzibati işlərin yerinə yetirilməsi prosesində faydalı ola bilər (məsələn, yeni ZFS funksionallığı üçün bayraqların aktivləşdirilməsi və ya məlumatların təmizlənməsi);
  • Hovuzda istifadə olunan diskləri artıq istifadə olunmayan sektorlar haqqında məlumatlandırmaq üçün "zpool trim" əmri əlavə edilmişdir. TRIM əməliyyatının istifadəsi SSD-lərin səmərəliliyini artırmağa və onların performansının pisləşməsinin qarşısını almağa imkan verir. TRIM əmrlərinin ötürülməsinin davamlı fon prosesini təmin etmək üçün yeni "autotrim" xüsusiyyəti təklif edilmişdir;
  • Bütün bölüşdürülməmiş disk sahəsini işə salmaq üçün "zpool initialize" əmri əlavə edildi ki, bu da onun ilk girişdə performansın aşağı düşməsi olmadan dərhal istifadəyə hazır olmasına imkan verir (məsələn, VMware VMDK kimi virtuallaşdırılmış saxlama yerlərini yerləşdirərkən);
  • Əvvəllər mövcud olan istifadəçi və qrup səviyyəli kvotalara əlavə olaraq, mühasibat uçotu və layihə səviyyəli kvotalar üçün əlavə dəstək. Əslində, layihələr ayrıca identifikator (layihə ID) ilə əlaqəli obyektlərin ayrıca məkanıdır. Bağlama 'chattr -p' əməliyyatı və ya atribut irsi vasitəsilə müəyyən edilir. Layihənin idarə edilməsi üçün “zfs project” və “zfs projectspace” əmrləri təqdim olunur ki, bu da sizə layihələrin yaradılmasını idarə etməyə və onlar üçün disk sahəsi məhdudiyyətlərini təyin etməyə imkan verir;
  • ZFS ilə müxtəlif işləri avtomatlaşdırmaq üçün Lua skriptləri yaratmaq imkanı əlavə edildi. Skriptlər "zpool proqramı" əmrindən istifadə edərək xüsusi təcrid olunmuş mühitlərdə işlədilir;
  • Yeni kitabxana tətbiq olundu pyzfs, Python proqramlarından ZFS idarə etmək üçün sabit API təmin edir. Kitabxana libzfs_core ətrafında sarğıdır və eyni funksiyalar dəstini təmin edir, lakin daha yaxın Python növlərindən istifadə edir;
  • arcstat, arcsummary və dbufstat utilitləri Python 3 ilə uyğunlaşdırılıb. arcstat.py, arc_summary.py və dbufstat.py utilitlərinin adı ".py" uzantısı olmayan versiyalara dəyişdirilib;
  • Buferləşdirmədən və keşdən yan keçmədən məlumat əldə etməyə imkan verən Linux Direct IO (O_DIRECT) nüvə interfeysi üçün əlavə dəstək;
  • Performans optimallaşdırmaları təqdim edildi:
    • "Skrab" və "resilver" əmrlərinin işi iki mərhələyə bölündüyünə görə sürətləndirildi (metaməlumatların skan edilməsi və diskdə verilənlərlə blokların yerlərinin müəyyən edilməsi üçün ayrıca mərhələ ayrılıb ki, bu da ardıcıl məlumatlardan istifadə edərək əlavə yoxlamaya imkan verir. oxumaq);
    • Ayrılma sinifləri üçün əlavə dəstək,
      nisbətən kiçik SSD-lərin birləşdirilməsinə və yalnız metadata, DDT məlumatları və kiçik fayl blokları kimi ümumi istifadə olunan blokların müəyyən növlərini saxlamaq üçün istifadə etməyə imkan vermək;

    • kimi admin əmrlərinin təkmilləşdirilmiş performansı
      "zfs list" və "zfs get", onların fəaliyyəti üçün lazım olan metaməlumatların keşləşdirilməsi ilə;

    • Hər bir metaslab qrupu üçün ayrıca ayırıcı prosesləri işlətməklə blokların yerləşdirilməsi əməliyyatlarının paralelləşdirilməsi üçün əlavə dəstək. Adi sistemlərdə 5-10% performans artımı var, lakin böyük sistemlərdə (8 128 GB SSD, 24 nüvəli NUMA, 256 GB RAM) blok ayırma əməliyyatlarında artım 25% -ə çata bilər;
    • "Resilver" əmrinin təxirə salınmış icrası imkanı əlavə edildi (sürücülərin konfiqurasiyasındakı dəyişiklikləri nəzərə alaraq məlumatların paylanmasının yenidən qurulması) - yeni bir əməliyyata başladıqda əvvəlki hələ tamamlanmayıbsa, yeni işləyici yalnız bundan sonra icra etməyə başlayacaq. əvvəlkinin sonu;
    • ZIL-ə (ZFS Intent Log) optimallaşdırmalar əlavə edilib ki, yaddaş hələ də emal olunan blokların mövcudluğunda blokların yaradılmasına və işlənməsinə imkan verir;
    • Sistemdə arakəsmələr (zvol) üçün azaldılmış qeydiyyat vaxtı. Hovuzda çoxlu sayda arakəsmələr olduqda, onlar "zpool import" etdikdən dərhal sonra mövcuddur;
    • Intel QAT (Quick Assist Technology) çiplərindən istifadə edərək SHA256 hashlərinin aparat hesablamalarının sürətləndirilməsi və AES-GSM şifrələmə əməliyyatları üçün əlavə dəstək. Intel C62x çipsetinin və CPU Atom C3000-in aparat sürətləndirilməsi üçün əlavə dəstək.

Mənbə: opennet.ru

Добавить комментарий