Bosh sahifa Wiki Distributed file system

Distributed file system

Distributed file systemfayl va kataloglarni bir nechta tarmoq tugunida saqlab, clientga yagona namespace orqali ochadigan fayl tizimi. U sig‘im va throughputni ko‘p server bo‘ylab kengaytirishi, ma’lumotni replikatsiya yoki erasure coding bilan himoyalashi mumkin.

Namespace va data

Client /projects/data/file.bin kabi yo‘l bilan ishlaydi, tizim esa fayl metadata’si va bloklari qaysi tugunda ekanini aniqlaydi. Metadata file name, owner, permission, timestamp va block mappingni saqlaydi. Data node’lar fayl mazmuni fragmentlarini ushlab turadi.

Ba’zi arxitekturalarda markaziy metadata server mavjud; boshqalar metadata’ni partition yoki replication qiladi. Metadata xizmati nosoz yoki sekin bo‘lsa data disklari sog‘lom bo‘lsa ham file open/create ishlamaydi. Uning high availability va recoverysi alohida rejalashtiriladi.

Semantika

POSIXga to‘liq moslik strong consistency, atomic rename, file locking va cache coherency talab qiladi. Taqsimlangan tizim performance yoki availability uchun ayrim semantikani soddalashtirishi mumkin. Hadoop HDFS, masalan, katta sequential fayllar va write-once/read-many workloadga yo‘naltirilgan; umumiy kichik fayl serveri xulqini aynan takrorlamaydi.

Application close’dan keyin boshqa client yangi ma’lumotni qachon ko‘rishi, concurrent writerga ruxsat va rename atomikligi mahsulot hujjatida tekshiriladi. “Fayl tizimi” nomi barcha local filesystem kafolatlarini anglatmaydi.

Data joylashuvi

Fayl block yoki chunklarga bo‘linib turli node’larda saqlanadi. Replication oddiy recovery beradi, erasure coding usable capacityni oshiradi. Placement rack va site failure domainlarini hisobga oladi. Client ko‘pincha eng yaqin replica’dan o‘qiydi va parallel bloklar orqali throughput oladi.

Node yo‘qolganda re-replication yoki reconstruction boshlanadi. Repair trafik production IO bilan raqobatlashadi. Juda to‘la clusterda yo‘qolgan redundancy’ni tiklash uchun bo‘sh joy yetmasligi mumkin, shuning uchun capacity headroom saqlanadi.

Kichik fayllar

Millionlab kichik fayl metadata RAM, RPC va directory listingni band qiladi. Har fayl data blokidan kichik bo‘lsa storage ham samarasiz ishlatiladi. Container format, object packing yoki small-file workloadga mos boshqa storage tanlanishi mumkin.

Katta fayllar parallel sequential IOdan foyda ko‘radi. Random low-latency database workloadi distributed file system cache, sync va failure semantikasi bilan mos kelmasligi mumkin; vendor support tekshiriladi.

Client va tarmoq

Client kernel mount, FUSE, native library yoki gateway protokoli orqali ulanadi. Network latency har metadata va data operatsiyasiga ta’sir qiladi. Client cache performance beradi, ammo boshqa writer o‘zgarishini ko‘rish uchun coherency protokoli kerak.

MTU, bandwidth, DNS va time synchronization storage ishonchliligiga kiradi. Network partitionda client request timeout bo‘lishi yoki lease yo‘qolishi mumkin. Cheksiz retry duplicate write yoki uzun application stall yaratmasligi uchun timeout va idempotency belgilanadi.

Ekspluatatsiya

Monitoring namespace operation latency, metadata capacity, under-replicated block, checksum error, disk/node health, repair backlog va network throughputni kuzatadi. Snapshot backup bo‘lishi mumkin, lekin ayni clusterdagi snapshot site yo‘qolishidan himoya qilmaydi.

Upgrade client-server protocol va on-disk format compatibilitysi bilan bosqichli bajariladi. Restore faqat fayl data’sini emas, namespace metadata, permission va encryption keylarni ham qamraydi. Node, rack, metadata leader va tarmoq bo‘linishi failure testlarida alohida sinaladi.

Bog‘liq tushunchalar

File system, Distributed storage, Namespace, Metadata server, Replication, Erasure coding, HDFS, Cache coherence