Bosh sahifa Wiki ZFS

ZFS

ZFS — volume manager va fayl tizimi vazifalarini birlashtiradigan, data integrity, snapshot, compression va storage pool boshqaruvini taqdim etadigan saqlash platformasi. U dastlab Sun Microsystems tomonidan ishlab chiqilgan; keyingi ochiq rivojlanish OpenZFS loyihasi orqali davom etadi.

Pool va dataset modeli

Fizik disklar yoki partitionlar vdevlarga, vdevlar esa zpoolga birlashtiriladi. Pool sig‘imi ichidan filesystem datasetlar va block device ko‘rinishidagi zvolar yaratiladi. An’anaviy qat’iy partitionlashdan farqli ravishda datasetlar pooldagi bo‘sh joyni umumiy ishlatadi; quota va reservation bilan chegaralar belgilanadi.

Vdev topologiyasi chidamlilikni belgilaydi. Mirror bir xil ma’lumotning bir nechta nusxasini saqlaydi. RAIDZ parity asosidagi sxema bo‘lib, RAIDZ1, RAIDZ2 va RAIDZ3 mos ravishda bir, ikki yoki uch disk nosozligiga mo‘ljallangan. Pool bir nechta vdevdan tuzilsa, bitta asosiy vdev butunlay yo‘qolishi pool ma’lumotini yo‘qotishi mumkin. Shu sabab vdev tanlovi keyin oddiy fayl ko‘chirishdek o‘zgartirilmaydi.

Copy-on-write va tekshiruv summasi

ZFS mavjud blokni joyida ustidan yozmaydi. Yangi ma’lumot boshqa blokka yozilib, metadata daraxti muvaffaqiyatli tugagach yangi holatga yo‘naltiriladi. Bu copy-on-write modeli yarim yozilgan metadata xavfini kamaytiradi va snapshotni arzon yaratishga imkon beradi.

Data va metadata uchun checksum saqlanadi. O‘qishda hisoblangan checksum mos kelmasa, redundancy mavjud bo‘lsa ZFS sog‘lom nusxadan ma’lumotni qayta tiklab, buzilgan nusxani tuzatishi mumkin. Oddiy RAID controller ko‘pincha qaysi mirror nusxasi to‘g‘ri ekanini end-to-end checksum bilan aniqlay olmaydi.

Snapshot, clone va yuborish

Snapshot datasetning ma’lum vaqtdagi read-only ko‘rinishidir. U avval juda kam joy egallaydi, keyin original bloklar o‘zgargan sari eski bloklarni ushlab turadi. Clone snapshotdan yaratilgan yoziladigan dataset bo‘lib, umumiy bloklardan foydalanadi.

zfs send snapshot oqimini boshqa poolga yuboradi, incremental send esa ikki snapshot orasidagi farqni uzatadi. Bu backup va replikatsiya uchun qulay. Snapshot diskning o‘zida qolsa, pool yo‘qolishidan himoya qilmaydi; mustaqil media yoki boshqa joydagi tekshirilgan nusxa kerak.

Xotira va performance

ARC tez-tez o‘qiladigan bloklarni RAMda keshlaydi. L2ARC ixtiyoriy ikkilamchi read cache, SLOG esa synchronous write uchun ZIL yozuvlarini alohida qurilmada saqlashi mumkin. SLOG oddiy write cache yoki umumiy tezlashtiruvchi disk emas; workload va qurilma power-loss protectioniga mos tanlanadi.

Recordsize, ashift, compression va sync xususiyatlari workloadga ta’sir qiladi. Compression ko‘pincha saqlash va IOni kamaytirishi mumkin, ammo natija data turiga bog‘liq. Dedup katta xotira va metadata xarajati sabab ehtiyotkor baholanadi. Poolni juda to‘ldirish allocation va performancega salbiy ta’sir ko‘rsatadi.

Boshqaruv

Muntazam scrub barcha bloklarni o‘qib, checksum va redundancy asosida yashirin buzilishlarni topadi. SMART monitoring diskning apparat holatini kuzatadi; u scrub o‘rnini bosmaydi. ECC memory foydali himoya bo‘lsa-da, ZFSning ishlashi faqat ECC mavjudligiga bog‘langan degan qat’iy qoida yo‘q.

Disk almashtirish, pool import, key recovery va offsite backup tiklash amalda sinov qilinadi. Snapshot retention nazoratsiz qolsa poolni to‘ldirishi mumkin. Encryption ishlatilganda kalitning mustaqil zaxirasi bo‘lmasa, sog‘lom diskdagi data ham tiklanmaydi.

ZFS holati zpool status orqali muntazam tekshiriladi; degraded pool faqat alert bilan qolmay, sababiga qarab tezkor disk almashtirish va resilver jarayonini talab qiladi.

Bog‘liq tushunchalar

OpenZFS, Storage pool, Copy-on-write, RAIDZ, Snapshot, Checksum, Data integrity, Scrub