Logo GH

Fayl sistemləri və sinxronizasiya

Qısa xülasə

Fayl sistemi bütövlük, performans və əməliyyatların balansıdır. Sinxronizasiya uyğunluq modeli və münaqişələrin həlli haqqında deyil, yalnız «faylları kopyalayın». Tələblər ilə başlayın (p95 latency, RPO/RTO, yük növü), FS və protokol seçin, jurnallaşdırma və kilidləmə, SLO təyin edin, snapshot/versiyası avtomatlaşdırın və düzgün sinxronizasiya vasitələrindən istifadə edin.

Yük üçün fayl sisteminin seçilməsi

Universal Linux FS

ext4 - sabit «iş atı». Seçimlər: 'noatime, nodiratime, discard (ehtiyatla), data = ordered'. VM disklər, ümumi kataloqlar, CI-artefaktlar üçün yaxşıdır.
XFS - böyük fayllara/paralelizmə (media məzmun, log, DWH) güclü. Seçimlər: 'noatime, inode64'; böyük fayllar altında 'reflink = 1' (clone) qurmaq lazımdır.
ZFS - CoW, bütövlük testi, snapshots/replika 'send/recv', ARC/L2ARC, sync üçün ZIL/SLOG. Backup, NAS, bütövlük tələbi ilə əsas hovuzlar üçün fərqlidir.
Btrfs - CoW, snapshots/sıxılma/RAID userspace; dev/test və edge altında yaxşı, sazlama olmadan OLTP üçün diqqətli olun.

Windows/crossplatform

NTFS - ACL, ADS, SMB üçün etibarlı; performans üçün 'DisableLastAccess'.
exFAT - çıxarıla bilən daşıyıcılar, heç bir lisenziya və jurnal yoxdur (promosyon üçün deyil).

Etibarlılıq və sürətə təsir edən parametrlər

Jurnallaşdırma və maneələr: 'data = ordered' (default ext4) - balans; 'data = journal' - daha təhlükəsiz, lakin daha yavaş; write barriers daxil olduğundan əmin olun (və ya BBU/PLP ilə nəzarətçi).
fsync/sync: kritik axınlar (jurnallar/əməliyyatlar) açıq şəkildə 'fsync ()' çağırmalıdır; əks halda qəza zamanı itki mümkündür.
atime: 'relatime '/' noatime' write təzyiqini azaldır.
xattr/ACL: POSIX ACL və təhlükəsizlik etiketlərinə ehtiyacınız varsa daxil edin.
Blokların ölçüsü/recordsize: ZFS 'recordsize = 16K' DB üçün; '1M' böyük media üçün.

Montaj nümunələri:
bash ext4 for CI artifacts
UUID=... /var/lib/ci ext4 noatime,nodev,nosuid,data=ordered 0 2
XFS for Media Directories
UUID=... /srv/media xfs noatime,attr2,inode64 0 0
ZFS for backups and snapshots (creation)
zpool create tank mirror nvme0n1 nvme1n1 zfs set compression=lz4 atime=off tank/backups

Şəbəkə və paylanmış fayl sistemləri

NFS/SMB (NAS-yanaşma)

NFSv3/v4: sadə və sürətli; v4 kilidləmə və Kerberos verir ('sec = krb5p'). Yüksək tezlikli «dərin» fsync üçün NFS-ə güvənməyin - yerli disk + asenkron boşaltma daha yaxşıdır.
SMB 3. x: multichannel, şifrələmə, AD ilə inteqrasiya. Həssas məlumatlara imza/şifrələmə daxil edin.

NFS ixracı (minimum):

/pool/projects 10. 0. 0. 0/16(rw,no_root_squash,sec=krb5p,async)
SMB (fraqment):

[reports]
path = /pool/reports read only = no vfs objects = acl_xattr, recycle smb encrypt = required

Paylanmış FS

CephFS - Ceph üzərində POSIX; üfüqi miqyaslı, snapshots, kvouts, metadata paylanmış üçün yaxşıdır.
GlusterFS - başlanğıc, replika/charding asandır, lakin kiçik fayllar və p99 ilə diqqətlə.
Lustre/IBM Spectrum Scale - NRS/böyük fayllar, şəbəkə/əməliyyat tələb edir.
9P (Virtio-fs) - VM paylaşımı üçün, sərt SLO ilə prod yükləmələri üçün deyil.

Tövsiyə: OLTP/cüzdan üçün - şəbəkə FS deyil; blok cildləri istifadə edin. Statik məzmun/ümumi artefaktlar üçün - NFS/SMB/obyekt + CDN.

Kilid, caching və uyğunluq

Advisory vs mandatory locks: Linux обычно advisory; SMB oplocks/leases, NFSv4 - stateful locks dəstəkləyir.
Müştəri keşləri: aqressiv keşlər oxumağı sürətləndirir, lakin çox müştərilərlə münaqişə riskini artırır.

Uyğunluq:
  • Strong (lokal FS, ZFS).
  • Close-to-open (NFS): dəyişikliklər 'close ()/open ()' zamanı görünür.
  • Eventual (bəzi paylanmış/obyekt ssenariləri).
  • Saat: NTP/PTP; zaman sürüklənməsi münaqişə-rezoll və TTL qırır.

Sinxronizasiya: modellər və alətlər

Modellər

One-way (push/pull): artefaktların nəşri, hesabatların yüklənməsi, offsite-backup.
Two-way (bi-dir): birgə iş; konflikt-rezolver və version tələb olunur.
Hub-and-spoke: mərkəzi qovşaq/klaster vasitəsilə ulduz (MinIO/S3 + agentlər).
Near-real-time vs batch: inotify/log dəyişikliklər vs periodik pəncərələr.

Alətlər

rsync - de-fakto standart one-way; '--delete', '--partial', '-inplace' (diqqətlə).
rclone - S3/buludlar, hash yoxlama, server-side copy.
Unison - true bi-directional, münaqişələrin həlli.
Syncthing - p2p, versiyalaşdırma, iş qovluqları üçün əlverişlidir.
lsyncd - inotify ilə rsync tetikleyicisi; near-real-time.
ZFS send/recv - mükəmməl «sink» snapshot/inkrement (bayt effektiv).

rsync (one-way, statik kataloqun nəşri):
bash rsync -az --delete --numeric-ids --partial --inplace \
/srv/builds/ user@edge:/var/www/builds/
Unison (bi-dir, profil):

root =/srv/shared root = ssh ://user @ peer//srv/shared prefer =/srv/shared # in case of conflict - local side repeat = watch # inotify ignore = Name. tmp
lsyncd (rsync üzərində near-real-time):
lua settings { logfile="/var/log/lsyncd. log", statusFile="/var/run/lsyncd. status" }
sync {
default. rsync,
source="/srv/outbox",
target="user@remote:/srv/inbox",
rsync={ archive=true, compress=true, delete=true }
}
ZFS replika (inkrement):
bash zfs snapshot tank/data@now zfs send -i tank/data@prev tank/data@now      ssh backup zfs recv -F backup/data

Version, snapshotlar və «səbətlər»

CoW Snapshot (ZFS/Btrfs/CephFS): sürətli geri dönüş nöqtələri, min. yük.
Proqram səviyyəsində version (Nextcloud/Syncthing/obyekt): istifadəçilər üçün əlverişlidir.
SMB/NFS-də səbətlər/resikllər: təsadüfi silinmədən xilas olur, lakin arxa qapını əvəz etmir.

Təhlükəsizlik və giriş

ACL və xattr: POSIX ACL, SMB üçün SID/ACE, mapping uid/gid.
SFTP/HTTPS/WebDAV - SMB/NFS açmaq mümkün olmadıqda.
Şifrələmə: LUKS/ZFS native; uçuşda - Kerberos (NFSv4), SMB encryption, şlyuzlar üçün TLS.
PII/complayens: seqmentasiya top, ciddi maska hüquqları, giriş auditləri, WORM lazım olduğu yerdə dəyişməz.

Müşahidə, SLO və alertlər

Метрики ФС: p95/p99 latency (read/write/open), IOPS, qdepth, cache hit, inode usage, fill-level, errors (EIO/ENOSPC).
Network Metrics (NFS/SMB): retransmits/drops, RPC RTT, oplock breaks, queue length.

SLO (nümunələr):
  • NFS top CI: p95 'open '/' read' ≤ 3-5 ms, mövcudluğu ≥ 99. 95%.
  • SMB hesabatlar: p95 siyahı kataloq ≤ 100 ms ≤ 10k fayllar/dre.
  • ZFS backup hovuzu: p99 qeydləri ≤ 10 ms, snapshot müvəffəqiyyəti 100%, RPO ≤ 15 min (artımlar).
Alertlər:
  • Hovuzun doldurulması> 80/90/95%, 'EIO' artımı, snapshot gecikməsi, hit-ratio düşməsi, tez-tez oplock-break.

Məhsul üçün nümunələr (iGaming/fintech)

Statika (ikonlar/preview/provayder kataloqları): rsync → CDN vasitəsilə nəşr; orijinal mənbəyi versiyalaşdırma ilə obyektdə saxlamaq.
Logi və «xam» hadisələr: yerli yazmaq (XFS/ext4) → batchevo (rclone → S3/MinIO).
Hesabat və PII: şifrələmə və ciddi ACL ilə SMB; periodik offsite-ixrac (ZFS send/recv) qəbul tərəfində WORM ilə.
Dev-mühit və artefaktların fiksasiyası: Paylaşma üçün NFS/SMB; ağır bazalar üçün - blok + snapshot.
Məzmun əməkdaşlığı: Version və kvotalarla Syncthing/Nextcloud.

Giriş çek siyahısı

  • Data sinifləri (isti/soyuq/PII), RPO/RTO və SLO müəyyən edilmişdir.
  • FS tərəfindən seçilmişdir: düzgün variantları ilə ext4/XFS/ZFS (noatime, barriers, recordsize).
  • Əgər NAS: şifrələmə/imzalarla NFSv4/SMB, ACL, Kerberos/AD.
  • Snapshots/Version/Səbətlər - konfiqurasiya və bərpa yoxlanılır.
  • Tapşırıq üçün çinka aləti: rsync (one-way), Unison/Syncthing (bi-dir), rclone (bulud), ZFS send/recv (backup/DR).
  • FS/şəbəkə/əməliyyatların monitorinqi, burn-rate SLO, ENOSPC/EIO/oplock.
  • Sənədləşdirmə: Runbook konfliktlər, fsync qaydaları, adlandırma/yol uzunluğu/kodlama siyasəti.
  • Testlər: yükləmə profilləri (kiçik/böyük fayllar), kata ssenariləri (əlaqənin kəsilməsi, redaktə konflikti).

Tipik səhvlər

Yerli blok cildinin əvəzinə kritik əməliyyatlar (OLTP) üçün ümumi şəbəkə topu.
Qapalı barriers/no fsync app → uğursuzluq zamanı məlumat itkisi.
Versiyalaşdırma və vahid vaxt olmadan Two-way sink → «yeyilmiş» dəyişikliklər.
Online-' discard 'isti hovuz → gizli quyruqları.
Bir kataloq milyonlarla kiçik fayllar → fəlakətli listinq/backup.
Açıq mapping olmadan SMB və NFS arasında hüquqların/sahiblərin qarışması.

Mini playbuklar

One-way yayım bild → edge serverlər

1. Montaj '/srv/builds '(yerli FS). 2) `rsync -az --delete` на edge. 3) CDN-nin əlilliyi.

Bi-dir iş qovluğu analitiklər

1. Syncthing/Unison, «N gün versiyası», münaqişə - hər iki versiyası saxlamaq. 2) per-user kvotaları. 3) Periodik offsite-backup.

DR hesabat kataloqu (WORM)

1. ZFS snapshot cədvəli. 2) 'send/recv' Object Lock/WORM ilə təcrid host. 3) Aylıq bərpa testi.

Yekun

Etibarlı fayl alt sistemi düzgün FS + düzgün jurnallaşdırma/maneə rejimləri + aydın kilid modeli və effektiv sinxronizasiya düzgün topologiya (one-way/bi-dir), versiyalaşdırma və sübut edilmiş vasitələrdir. Runbook-larda həlləri düzəldin, snapshot/replikasiyanı avtomatlaşdırın, SLO-ları ölçün və uğursuzluq ssenarilərini sınayın - beləliklə məlumatlar bütün olaraq qalacaq və əməliyyat prosesləri hətta pik yüklər altında proqnozlaşdırıla bilər.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.