फ़ाइल सिस्टम और तुल्यकालन
संक्षिप्त सारांश
एक फाइल सिस्टम अखंडता, प्रदर्शन और संचालन का संतुलन है। सिंक्रोनाइज़ेशन एक स्थिरता मॉडल और संघर्ष समाधान के बारे में है, न कि केवल "कॉपी फ़ाइलों" के बारे में। "हम आवश्यकताओं (p95 विलंबता, RPO/RTO, लोड प्रकार) के साथ शुरू करते हैं, फ़ाइल सिस्टम और प्रोटोकॉल का चयन करते हैं, लॉगिंग और लॉक कॉन्फ़िगर करते हैं, SLO सेट करते हैं, स्नैपशॉट/versioning और सनिंग सही का उपयोग करते हैं।
लोड के लिए फ़ाइल सिस्टम चुनना
यूनिवर्सल लिनक्स एफएस
ext4 एक स्थिर वर्कहॉर्स है। विकल्प: 'noatime, nodiratime, त्याग (सावधानी के साथ), डेटा = ऑर्डर किया गया'। वीएम ड्राइव, साझा निर्देशिका, सीआई कलाकृतियों के लिए अच्छा है।
XFS - बड़ी फ़ाइलों/समानतावाद (मीडिया सामग्री, लॉग, DWH) पर मजबूत। विकल्प: 'noatime, inode64'; बड़ी फ़ाइलों के लिए यह 'रिफ्लिंक = 1' (क्लोन) कॉन्फ़िगर करने के लायक है।
ZFS - CoW, इंटीग्रिटी चेक, स्नैपशॉट/प्रतिकृति 'send/recv', ARC/L2ARC, ZIL/SLOG सिंक के लिए। बैकअप के लिए उत्कृष्ट, एनएएस, अखंडता की आवश्यकता वाले आधार पूल।
Btrfs - CoW, स्नैपशॉट/संपीड़न/RAID प्रयोक्ता क्षेत्र में; देव/परीक्षण और किनारे के तहत अच्छा, बिना ट्यूनिंग के ओएलटीपी के लिए सावधान।
विंडोज/क्रॉस प्लेटफ़ॉर्म
एनटीएफएस - एसीएल, एडीएस, एसएमबी के लिए विश्वसनीय; प्रदर्शन के लिए 'डिसेबल लास्ट एक्सेस'।
EXFAT - हटाने योग्य मीडिया, बिना अधिकार और लॉगिंग (उत्पादन के लिए नहीं)।
सेटिंग्स जो विश्वसनीयता और गति को प्रभावित करती हैं
लॉगिंग और बैरियर: 'डेटा = ऑर्डर' (डिफ़ॉल्ट रूप से ext4) - बैलेंस; 'data = पत्रिका' - सुरक्षित, लेकिन धीमी; सत्यापित करें कि लेखन बाधाएं सक्षम हैं (या BBU/PLP के साथ नियंत्रक)।
fsync/sync: महत्वपूर्ण धागे (लॉग/लेनदेन) को स्पष्ट रूप से 'fsync ()' कहना चाहिए; अन्यथा दुर्घटना में नुकसान संभव है।
atime: 'relatime '/' noatime' लिखने के दबाव को कम करता है।
xattr/ACL-सक्षम करें यदि POSIX ACL और सुरक्षा लेबल आवश्यक हैं.
ब्लॉक आकार/रिकार्ड करना: ZFS 'Recordsize = 16K' for DB; ' 1M 'for बड़ा मीडिया।
बढ़ ते के उदाहरण: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
नेटवर्क और वितरित फ़ाइल सिस्टम
एनएफएस/एसएमबी (एनएएस दृष्टिकोण)
NFSv3/v4: सरल और उपवास; v4 ताले देता है और Kerberos ('sec = krb5p')। उच्च आवृत्ति "डीप" fsync के लिए NFS पर भरोसा न करें - बेहतर स्थानीय डिस्क + अतुल्यकालिक अनलोडिंग।
एसएमबी 3। x: multichannel, एन्क्रिप्शन, AD एकीकरण। संवेदनशील डाटा पर हस्ताक्षर/गोपन सक्षम करें।
एनएफएस (न्यूनतम) निर्यात करें:
/pool/projects 10. 0. 0. 0/16(rw,no_root_squash,sec=krb5p,async)
एसएमबी (टुकड़ा):
[reports]
path = /pool/reports read only = no vfs objects = acl_xattr, recycle smb encrypt = required
वितरित FS
CephFS - Ceph पर POSIX; क्षैतिज पैमाने के लिए अच्छा, स्नैपशॉट, कोटा, मेटाडेटा वितरित।
GlusterFS - शुरू करने में आसान, प्रतिकृति/शार्डिंग, लेकिन छोटी फ़ाइलों और p99 के साथ साफ।
चमक/आईबीएम स्पेक्ट्रम स्केल - एलडीसी/बड़ीफाइलें, नेटवर्क/संचालन पर मांग।
9P (Virtio-fs) - वीएम शेयरिंग के लिए, हार्ड एसएलओ के साथ उत्पादन भार के लिए नहीं।
सिफारिश: OLTP/पर्स के लिए - नेटवर्क FS नहीं; ब्लॉक वॉल्यूम का उपयोग करें। स्थिर सामग्री/सामान्य कलाकृतियों के लिए - एनएफएस/एसएमबी/ऑब्जेक्ट + सीडीएन।
ताला, कैशिंग और स्थिरता
सलाहकार बनाम अनिवार्य ताले: लिनक्स обычно सलाहकार; एसएमबी ऑप्लॉक/पट्टों का समर्थन करता है, NFSv4 स्टेटफुल लॉक का समर्थन करता है।
क्लाइंट कैशिंग: आक्रामक कैश पढ़ ने की गति बढ़ाते हैं, लेकिन बहु-ग्राहकों के साथ संघर्षों का खतरा बढ़ जाता है।
स्थिरता:- मजबूत (स्थानीय एफएस, जेडएफएस)।
- क्लोज-टू-ओपन (एनएफएस) - 'बंद ()/खुला ()' होने पर परिवर्तन दिखाई देते हैं।
- अंतिम (कुछ वितरित/वस्तु स्क्रिप्ट)।
- घंटे: एनटीपी/पीटीपी; समय बहाव संघर्ष-संकल्प और टीटीएल को तोड़ ता है।
सिंक्रोनाइज़िंग: मॉडल और उपकरण
मॉडल
वन-वे (पुश/पुल): कलाकृतियों को प्रकाशित करना, रिपोर्ट अपलोड करना, ऑफसाइट बैकअप।
दो-तरफ़ा (द्वि-दिर): सहयोग; समाधान संघर्ष और संस्करण की आवश्यकता है।
हब-एंड-स्पोक: केंद्रीय नोड/क्लस्टर (MinIO/S3 + एजेंट) के माध्यम से स्टार।
नियर-रियल-टाइम बनाम बैच: इनोटिफाई/चेंज लॉग बनाम आवधिक खिड़कियां।
उपकरण
rsync वास्तविक एक तरफा मानक है; '--delete', '--partial', '-inplace' (सावधानी)।
rclone - S3/clouds, हैश चेकिंग, सर्वर-साइड कॉपी।
यूनिसन - सच्चा द्वि-दिशात्मक, संघर्ष समाधान।
समन्वयन - p2p, वर्शनिंग, कार्य फ़ोल्डर के लिए सुविधाजनक।
lsyncd - rsync inotify द्वारा ट्रिगर; निकट-वास्तविक समय।
ZFS send/recv स्नैपशॉट/वेतन वृद्धि (बाइट कुशल) का एकदम सही सिंक है।
rsync (वन-वे, स्थैतिक निर्देशिका प्रकाशन):bash rsync -az --delete --numeric-ids --partial --inplace \
/srv/builds/ user@edge:/var/www/builds/
यूनिसन (द्वि-दिर, प्रोफ़ाइल):
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 पर निकट-वास्तविक समय):
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 प्रतिकृति (वेतन वृद्धि):
bash zfs snapshot tank/data@now zfs send -i tank/data@prev tank/data@now ssh backup zfs recv -F backup/data
वर्शनिंग, स्नैपशॉट और बास्केट
CoW स्नैपशॉट (ZFS/BtrFs/CephFS): त्वरित रोलबैक पॉइंट, मिन। चालान।
एप्लिकेशन-लेवल वर्शनिंग (Nextcloud/Syncthing/object): उपयोगकर्ताओं के लिए सुविधाजनक।
एसएमबी/एनएफएस पर टोकरी को रीसायकल करें: आकस्मिक विलोपन से बचाएं, लेकिन बैकअप को प्रतिस्थापित न करें।
सुरक्षा और पहुँच
ACL और xattr: POSIX ACL, SID/ACE के लिए SMB, uid/gid मैपिंग।
गेटवे के माध्यम से पढ़ें/लिखें: SFTP/HTTPS/WEBDA- जब SMB/NFS बाहर नहीं खोला जा सकता.
एन्क्रिप्शन: LUKS/ZFS मूल निवासी; उड़ान में - केर्बरोस (NFSv4), एसएमबी एन्क्रिप्शन, गेटवे के लिए टीएलएस।
PII/अनुपालन: बॉल विभाजन, सख्त अधिकार मास्क, एक्सेस ऑडिट, WORM जहां अपरिवर्तनीय की आवश्यकता होती है।
अवलोकन, एसएलओ और अलर्ट
Метрики ФС: p95/p99 लेटेंसी (रीड/राइट/ओपन), IOPS, qdepth, कैश हिट, इनोड उपयोग, भरण-स्तर, त्रुटियां (EIO/ENOSPC)।
नेटवर्क मैट्रिक्स (एनएफएस/एसएमबी): रेट्रांसमिट्स/ड्रॉप्स, आरपीसी आरटीटी, ऑप्लॉक ब्रेक, कतार की लंबाई।
एसएलओ (उदाहरण):- एनएफएस बॉल सीआई: p95 'ओपन '/' रीड' ≤ 3-5 एमएस, उपलब्धता ≥ 99। 95%.
- SMB रिपोर्ट: p95 निर्देशिका सूची ≤ 100 ms जब ≤ 10k फ़ाइलें/dir।
- ZFS बैकअप पूल: p99 ≤ 10 ms, 100% स्नैपशॉट सफलता, RPO ≤ 15 मिनट (वेतन वृद्धि) लिखें।
- पूल फिलिंग> 80/90/95%, 'ईआईओ' ग्रोथ, स्नैपशॉट लैग, हिट-रेशियो ड्रॉप, ऑप्लॉक-ब्रेक अक्सर।
उत्पाद पैटर्न (iGaming/fintech)
स्थिर (प्रतीक/पूर्वावलोकन/प्रदाता निर्देशिका): rsync → CDN के माध्यम से प्रकाशन; एक मूल वस्तु में मूल स्रोत संग्रहीत करें।
लॉग और "रॉ" इवेंट्स: स्थानीय (XFS/ext4) → बैच अनलोड (rclone → S3/MinIO) लिखें।
रिपोर्टिंग और पीआईआई: एन्क्रिप्शन और सख्त एसीएल के साथ एसएमबी; प्राप्त होने पर WORM के साथ आवधिक ऑफसाइट निर्यात (ZFS भेजें/recv)।
देव वातावरण और कलाकृतियों को कैप्चर करना: साझा करने के लिए एनएफएस/एसएमबी; भारी आधारों के लिए - ब्लॉक वॉल्यूम + स्नैपशॉट।
सामग्री सहयोग: संस्करण और कोटा के साथ सिंकथिंग/नेक्सक्लाउड।
कार्यान्वयन जाँच सूची
- परिभाषित डेटा कक्षाएं (हॉट/कोल्ड/पीआईआई), आरपीओ/आरटीओ और एसएलओ।
- चयनित फ़ाइल प्रणाली: ext4/XFS/ZFS सही विकल्पों के साथ (noatime, barders, recordsize)।
- यदि NAS: एन्क्रिप्टेड/साइन -, ACL, Kerberos/AD।
- स्नैपशॉट/वर्शनिंग/रीसायकल बिन्स - वसूली द्वारा कॉन्फ़िगर और सत्यापित।
- कार्य के लिए ब्रूज़टूल: rsync (वन-वे), Unison/Syncthing (bi-dir), rclone (क्लाउड), ZFS send/recv (बैकअप/DR)।
- एफएस/नेटवर्क/संचालन, बर्न-रेट एसएलओ, ईएनओएसपीसी/ईआईओ/ऑप्लॉक अलर्ट की निगरानी।
- प्रलेखन: रनबुक संघर्ष, fsync नियम, नामकरण/पथ लंबाई/एन्कोडिंग नीति।
- परीक्षण: लोड प्रोफाइल (छोटी/बड़ीफ़ाइलें), कट स्क्रिप्ट (डिस्कनेक्शन, संपादन संघर्ष)।
सामान्य त्रुटियाँ
स्थानीय ब्लॉक वॉल्यूम के बजाय साझा महत्वपूर्ण लेनदेन नेटबॉल (OLTP)।
अनुप्रयोग में अक्षम बाधाएं/कोई fsync नहीं - विफलता पर डेटा हानि।
संस्करण के बिना दो-तरफ़ासिंक और एक बार - "खाया" परिवर्तन।
हॉट पूल पर ऑनलाइन 'त्याग' - विलंबता पूंछ।
एक निर्देशिका में लाखों छोटी फाइलें - भयावह सूची/बैकअप।
स्पष्ट मानचित्रण के बिना एसएमबी और एनएफएस के बीच अधिकार/मालिक मिलाएं।
मिनी प्लेबुक
एकतरफा प्रकाशन बिल्ड एज सर्वर
1. '/srv/builds 'में असेंबली (स्थानीय फ़ाइल सिस्टम)। 2) 'rsync-az --delete' на edge। 3) सीडीएन विकलांगता।
द्वि-दिर विश्लेषक कार्य फ़ोल्डर
1. सिंकथिंग/यूनिसन, "वर्शनिंग एन डेज़", संघर्ष - दोनों संस्करणों को सहेजें। 2) प्रति-उपयोगकर्ता कोटा। 3) आवधिक ऑफसाइट बैकअप।
कैटलॉग डीआर (WORM) की रिपोर्ट करें
1. एक शेड्यूल पर ZFS स्नैपशॉट। 2) ऑब्जेक्ट लॉक/WORM के साथ एक पृथक होस्ट को 'भेजें/recv'। 3) मासिक वसूली परीक्षण।
परिणाम
एक विश्वसनीय फ़ाइल सबसिस्टम सही फ़ाइल सिस्टम + सही लॉगिंग/बैरियर मोड + एक समझने योग्य अवरोधक मॉडल है, और प्रभावी तुल्यकालन सही टोपोलॉजी (वन-वे/बाई-डिर), वर्शनिंग और सिद्ध उपकरण है। रनबुक में समाधान कैप्चर करें, स्नैपशॉट/प्रतिकृति स्वचालित करें, एसएलओ और परीक्षण विफलता परिदृश्यों को मापें - इस तरह डेटा बरकरार रहेगा और पीक लोड पर भी परिचालन प्रक्रियाएं अनुमानित होंगी।