Bosh sahifa Wiki GlusterFS

GlusterFS

GlusterFS — bir nechta serverdagi disk va directory’larni yagona distributed file system sifatida birlashtiradigan ochiq kodli storage tizimi. Clientlar umumiy namespace orqali file yaratadi va o‘qiydi. GlusterFS scale-out file storage, shared content, arxiv va ayrim virtualization workloadlarida ishlatiladi.

Tizim markaziy metadata serverga majburiy tayanmasdan file joylashuvini hashingga yaqin usul bilan aniqlashga intiladi.

Trusted storage pool

GlusterFS serverlari bir-birini trusted peer sifatida tanib, storage pool hosil qiladi.

Poolga yangi node qo‘shishdan oldin:

mos bo‘lishi kerak.

Peer qo‘shilishi data avtomatik ko‘chdi degani emas.

Brick

Brick — Gluster volume tarkibiga qo‘shiladigan serverdagi directory.

Masalan:

server1:/data/brick1

Brick alohida filesystem yoki mount pointda joylashishi ma’qul.

Bir physical diskdagi bir nechta brick haqiqiy failure isolation bermaydi.

Volume

Gluster volume bir yoki bir nechta brickni yagona namespace’da ko‘rsatadi.

Volume turi data qanday joylashishini belgilaydi.

Client volume nomi bilan ulanadi.

Configuration barcha peer’larda sinxronlanadi.

Distributed volume

Filelar bricklar orasida taqsimlanadi.

Har file odatda bitta brickda saqlanadi.

Capacity oshadi, ammo bitta brick failure’da undagi filelar unavailable bo‘lishi mumkin.

Replication bo‘lmasa fault tolerance yo‘q.

Replicated volume

Har file bir nechta brickda nusxalanadi.

Bitta server yoki disk failure’da boshqa replica ishlaydi.

Storage xarajati replica soniga ko‘payadi.

Replica bricklar alohida failure domainlarda joylashadi.

Distributed replicated

Replica setlar bir nechta guruhga taqsimlanadi.

Bu capacity va redundancy’ni birlashtiradi.

Brick soni replica countga mos bo‘lishi kerak.

Topology noto‘g‘ri bo‘lsa bir host failure’da bir replica setning barcha nusxasi yo‘qolishi mumkin.

Dispersed volume

Erasure codingga yaqin model data va redundancy fragmentlarini bir nechta brickka taqsimlaydi.

Replicationga qaraganda usable capacity yuqori bo‘lishi mumkin.

Small-file va write performance xarajati mavjud.

Failure tolerance konfiguratsiyaga bog‘liq.

Translator

GlusterFS funksiyalari translator qatlamlari orqali tashkil qilinadi.

Ular:

behaviorini beradi.

Client va server translator stacki volume turiga qarab quriladi.

Client access

Native Gluster client FUSE yoki boshqa integration orqali volume’ni mount qilishi mumkin.

NFS yoki SMB gateway orqali ham access berilishi ehtimoli bor.

Native client cluster topology’sini bilib, kerakli brick bilan aloqa qiladi.

Network uzilishi file operationga ta’sir qiladi.

Hashing

File nomi qaysi subvolume’da joylashishini aniqlash uchun distributed hash ishlatiladi.

Bu markaziy file-location database zaruratini kamaytiradi.

Directory metadata va layout xextended attribute’larda saqlanishi mumkin.

File ko‘chirilganda linkfilega o‘xshash mexanizm ishlatilishi ehtimoli bor.

Rebalance

Yangi brick qo‘shilganda eski filelar avtomatik teng tarqalmaydi.

Rebalance filelarni yangi layout bo‘yicha ko‘chiradi.

Bu disk va network yukini oshiradi.

Jarayon holati kuzatiladi va katta volume’da uzoq davom etishi mumkin.

Self-heal

Replica nusxalaridan biri eskirgan yoki yo‘qolgan bo‘lsa self-heal to‘g‘ri nusxadan tiklaydi.

Data, metadata va entry heal turlari mavjud bo‘lishi mumkin.

Heal backlog monitoring qilinadi.

Noto‘g‘ri split-brain avtomatik hal qilinmasligi mumkin.

Split-brain

Bir nechta replica bir-biridan mustaqil o‘zgarsa qaysi biri to‘g‘ri ekanini aniqlash qiyin.

Bu network partition yoki parallel write’dan kelib chiqishi mumkin.

Resolution:

  • latest;
  • bigger file;
  • source brick tanlash;
  • manual merge

kabi policy yoki administrator qarorini talab qiladi.

Quorum

Replica volume’da client yoki server quorum write’ni cheklashi mumkin.

Maqsad partition paytida ikki tomonda parallel write’ni kamaytirish.

Quorum noto‘g‘ri sozlansa bitta node failure’da barcha write to‘xtashi mumkin.

Availability va consistency o‘rtasida tanlov mavjud.

Small file

Millionlab kichik file metadata va directory operationlarini ko‘paytiradi.

Performance:

ga bog‘liq.

Faqat umumiy throughput bilan baholash yetarli emas.

Virtual machine disk

VM disk image katta mutable file sifatida ishlaydi.

Distributed file systemdagi locking, latency va replica behaviori muhim.

Har Gluster configuration virtualization uchun mos emas.

Snapshot va backup application-consistency bilan bajariladi.

Geo-replication

Volume data’sini boshqa site’ga asynchronous nusxalash mumkin.

Bu disaster recovery uchun ishlatiladi.

Replication lag va file conflict hisobga olinadi.

Failoverdan keyin qayta primaryga qaytish alohida reja talab qiladi.

Security

Client access network va authentication bilan cheklanadi.

TLS, firewall va volume allowlist ishlatilishi mumkin.

Brick directory clientga oddiy NFS share sifatida bevosita ochilmaydi.

Root va extended attribute’larni o‘zgartirish cluster metadata’sini buzishi mumkin.

Backup

Replication backup emas.

User tasodifan file o‘chirsa delete replica’larda ham takrorlanadi.

Alohida snapshot, versioned backup yoki boshqa site copy saqlanadi.

Restore test qilinadi.

Arbiter

Replica setda to‘liq uchinchi data nusxasi o‘rniga metadata va conflict resolutionga yordam beruvchi arbiter brick ishlatilishi mumkin. Bu storage xarajatini kamaytiradi, ammo topology va failure behaviorini to‘g‘ri tushunish kerak.

Quota

Directory tree bo‘yicha storage limit belgilanishi mumkin. Quota metadata yangilanishi va distributed hisoblash sabab monitoring bilan tekshiriladi. Fizik brick to‘lishi quota’dan boshqa xavf.

Upgrade

Node’lar navbat bilan yangilansa client va peer protocol compatibility saqlanadi. Rebalance, heal va upgrade’ni bir vaqtda bajarish storage yukini oshiradi.

Bog‘liq tushunchalar

GlusterFS, Distributed file system, Brick, Gluster volume, Replication, Dispersed volume, Rebalance, Self-heal, Split-brain, FUSE, Scale-out storage