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.
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.
/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.
- 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).
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.
- 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).
- 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.