ब्लॉक भंडारण और प्रदर्शन
संक्षिप्त सारांश
ब्लॉक भंडारण कच्चे उपकरण (LUN/आयतन) देता है जिसके शीर्ष पर आप FS, LVM/ZFS आदि का निर्माण करते हैं। प्रदर्शन मीडिया प्रकार, एक्सेस प्रोटोकॉल, कतार और गहराई, ब्लॉक आकार, कोडिंग योजना (RAID/EC), कैश और बाधाओं, नेटवर्क कपड़े, और एप्लिकेशन-विशिष्ट I/O पैटर्न (यादृच/अनुक्य, सिंक/async) द्य) द्य। लक्ष्य आवश्यक p95/p99 विलंबता और IOPS/बैंडविड्थ को मजबूती और पूर्वानुमेयता के साथ प्रदान करना है।
ब्लॉक एक्सेस टैक्सोनॉमी
स्थानीय: एनवीएमई (पीसीआईई), एसएएस/एसएटीए एसएसडी/एचडीडी। न्यूनतम विलंबता, कोई नेटवर्क अड़ चन नहीं।
नेटवर्क:- iSCSI (ईथरनेट, LUN, MPIO, ALUA)।
- फाइबर चैनल (एफसी) (16-64G, कम विलंबता, ज़ोनिंग)।
- NVMe-oF: NVMe/TCP, NVMe/RoCE, NVMe/FC - नेटवर्क पर "देशी" NVMe, कम ओवरहेड।
- HCI/वितरित (Ceph RBD, vSAN): सुविधाजनक स्केलेबिलिटी, लेकिन विलंबता अधिक है, नेटवर्क/कोडिंग महत्वपूर्ण है।
- p99 विलंबता ≤ 1-2 ms, बहुत उच्च IOPS → स्थानीय NVMe/NVMe-oF।
- स्थिर "माध्य" विलंबता 2-5 एमएस, परिपक्व → एफसी या एनवीएमई/एफसी कारखाना।
- ईथरनेट पर एकीकृत, iSCSI या NVMe/TCP को संचालित करना आसान है।
प्रोटोकॉल और उनकी विशेषताएँ
iSCSI: बहुमुखी प्रतिभा, MPIO/ALUA, TCP कॉन्फ़िगरेशन सेंसिटिव (MTU, ऑफलोड, qdepth)।
एफसी: अलगाव, दोषरहित प्रवाह, डब्ल्यूडब्ल्यूपीएन ज़ोनिंग, एचबीए कतारें और क्रेडिट।
NVMe-oF: कई सबमिशन/पूर्णता कतारों के माध्यम से समानतावाद, कम सीपीयू लोड, टीएलएस एनवीएमई/टीसीपी (यदि आवश्यक हो) के लिए संभव है।
RAID/EC और मीडिया
RAID10 - न्यूनतम विलंबता और अनुमानित IOPS; डेटाबेस/वॉलेट के लिए इष्टतम।
RAID5/6 - क्षमता में बेहतर, दंड लिखना, IOPS सिंक-राइट के लिए गिरता है।
वितरित सरणियों में इरेज़र कोडिंग क्षमता के मामले में फायदेमंद है, लेकिन रिकॉर्डिंग "अधिक महंगी" है।
NVMe SSD - p99 शीर्ष; एसएएस एसएसडी - समझौता; एचडीडी एक अनुक्रमिक बैंडविड्थ है, लेकिन एक बुरा यादृच्छिक है।
फ़ाइल सिस्टम और संरेखण
XFS बड़े डेटाबेस फ़ाइलों/लॉग के लिए एक उत्कृष्ट विकल्प है; अनुकूलन योग्य 'एगकाउंट', लॉग के लिए 'रियलटाइम'।
ext4 - बहुमुखी, सावधानी से RAID के लिए 'स्ट्राइड/स्ट्राइप _ चौड़ाई'।
ZFS - CoW, इंटीग्रिटी चेक, स्नैपशॉट/प्रतिकृति, ARC/ZIL/SLOG; सिंक लोड के लिए - PLP के साथ NVMe पर SLOG।
संरेखण: 1MiB-aligned पार्टीशन, सही 'रिकार्डसाइज़ '/' ब्लॉकसाइज़' लोड के तहत.
कतारें, गहराई और ब्लॉक आकार
IOPS कतार गहराई के साथ बढ़ रहे हैं, लेकिन ऐसा विलंबता है; लक्ष्य - QD, जो p95/p99 नियंत्रण के दौरान आवश्यक IOPS देता है।
ब्लॉक आकार: छोटा (4-16K) - अधिक IOPS, बदतर बैंडविड्थ; बड़े (128K-1M) - बेहतर एंड-टू-एंड गति।
NVMe qpairs: कोर/NUMA द्वारा आवंटित; iSCSI/FC: qdepth HBA/सर्जक, MPIO नीतियां।
बाधाएं और FUA: शामिल राइट-बैरियर विश्वसनीयता बढ़ाते हैं लेकिन p99 को बढ़ाते हैं; SLOG/PLP ऑफसेट।
मल्टीपाथ और उपलब्धता
MPIO/DM-Multipath: पथ एकत्रीकरण, दोष सहिष्णुता।
राजनेता: 'राउंड-रॉबिन' (बैलेंस शीट), 'कतार-लंबाई' (होशियार), 'फेलओवर' (संपत्ति-दायित्व)।
ALUA सक्रिय नियंत्रक के लिए "पसंदीदा" पथ।
महत्वपूर्ण: 'no _ path _ retry', 'कतार _ if _ no _ path' - सावधानीपूर्वक ताकि लंबे समय तक I/O को "फ्रीज" न करें।
एफसी ज़ोनिंग: "एक सर्जक क्षेत्र - एक लक्ष्य" (विस्फोट त्रिज्या को कम करता है)।
NVMe-oF: ANA (असममित नेमस्पेस एक्सेस) - аналог ALUA।
TRIM/डिस्कार्ड और कैचिंग
TRIM/डिस्कार्ड SSD ब्लॉकों को मुक्त करता है (लिखता है-amp, विलंबता को स्थिर करता है)। जहां उपयुक्त हो, नियमित रूप से (क्रॉन) या ऑनलाइन त्याग करें।
रीड-फॉरवर्ड लगातार पढ़ ने के लिए उपयोगी है; यादृच्छिक में हानिकारक है।
राइट-बैक कंट्रोलर कैश - केवल BBU/PLP के साथ; अन्यथा, डेटा हानि का जोखिम।
नेटवर्क स्टैक (iSCSI/NVMe-TCP के लिए)
SRF कारखाने के लिए अलग VLAN/VRF; ग्राहक यातायात से अलगाव।
एमटीयू 9000 एंड-टू-एंड; RSS/RPS और IRQ NUMA को पिनिंग।
RoCE के लिए QoS/प्राथमिकता (यदि दोषरहित है), TCP चोटियों के लिए ECN/RED।
Storaj तक दो स्वतंत्र वसा वाले पेड़ (दोहरे TORs, विभिन्न बिजली फीडर)।
लिनक्स/होस्ट ट्यूनिंग (नमूना)
bash
Scheduler for NVMe echo none sudo tee /sys/block/nvme0n1/queue/scheduler echo 1024 sudo tee /sys/block/nvme0n1/queue/nr_requests echo 0 sudo tee /sys/block/nvme0n1/queue/add_random echo 0 sudo tee /sys/block/nvme0n1/queue/iostats
Read-ahead (sequential loads)
blockdev --setra 4096 /dev/nvme0n1
iSCSI: example of aggressive timeouts and retries iscsiadm -m node --op update -n node. session. timeo. replacement_timeout -v 10 iscsiadm -m node --op update -n node. conn[0].timeo. noop_out_interval -v 5 iscsiadm -m node --op update -n node. conn[0].timeo. noop_out_timeout -v 5
मल्टीपाथ (टुकड़ा 'मल्टीपाथ। conf '):
conf defaults {
find_multipaths yes polling_interval 5 no_path_retry 12
}
devices {
device {
vendor "PURE DELL NETAPP HITACHI"
path_checker tur features "1 queue_if_no_path"
path_grouping_policy group_by_prio prio alua
}
}
बेंचमार्किंग और प्रोफाइलिंग
fio - प्रोफाइल का न्यूनतम सेट:bash
Random read 4K, queue 32, 4 threads fio --name = randread --filename =/dev/nvme0n1 --direct = 1 --rw = randread\
--bs=4k --iodepth=32 --numjobs=4 --time_based --runtime=60
Random 4K entry (sync), log loads fio --name = randwrite --rw = randwrite --bs = 4k --iodepth = 16 --numjobs = 4\
--fsync=1 --direct=1 --runtime=60
Large block sequential recording (backups/dumps)
fio --name=seqwrite --rw=write --bs=1M --iodepth=64 --numjobs=2 --runtime=60
युक्तियाँ:
- अलग हीटिंग और माप, तापमान/थर्मल थ्रॉटलिंग रिकॉर्ड करें।
- LUN/आयतन पर जाँच करें, FS नहीं (यदि लक्ष्य कच्चा हार्डवेयर है)।
- उपाय p95/p99 विलंबता और 99। 9% पूंछ - वे डेटाबेस को "मारने" वाले हैं।
निगरानी और एसएलओ
मेट्रिक्स:- लेटेंसी p50/p95/p99 (पढ़ें/लिखें), IOPS, थ्रूपुट, कतार-गहराई, डिवाइस व्यस्त%, मर्ज, त्याग।
- नेटवर्क स्तर पर: ड्रॉप्स, रिट्रांसमिट्स, ईसीएन मार्क्स, इंटरफ़ेस त्रुटियाँ।
- सरणी स्तर पर: प्रतिकृति अंतराल, पुनर्निर्माण/समाधान प्रगति, लिखने-amp, पहनने के स्तर SSD।
- LUN БД (OLTP): p99 लिखें ≤ 1। 5ms, p99 पढ़ें ≤ 1। 0 एमएस, उपलब्धता ≥ 99। 95%.
- लॉग: p95 जोड़ें ≤ 2। 5 ms, बैंडविड्थ ≥ 400 MB/s प्रति वॉल्यूम।
- बैकअप: seq light 1 GB/s (एकत्र), वसूली RTO 15 मिनट।
- p99 लेटेंसी> थ्रेशोल्ड एन मिनट, एक ही क्यूडी के साथ आईओपीएस का क्षरण, RAID5/6 में रीड-संशोधित-राइट की वृद्धि, ओवरहीटिंग/थर्मल थ्रॉटल एसएसडी, शुरू/अटक पसलियों।
Kubernetes и CSI
पीवीसी/स्टोरेज क्लास: पैरामीटर 'रिक्लाइमपॉलिसी', ' BinaleMode = ForFirstComment' (सही स्थान), ' Expression'।
विक्रेता सीएसआई प्लगइन: स्नैपशॉट/क्लोन, QoS/प्रदर्शन नीतियां, वॉल्यूम-टोपोलॉजी।
एक्सेस मोड: डेटाबेस/स्टेट के लिए RWO, RWX - सावधानीपूर्वक (आमतौर पर फ़ाइल/नेटवर्क के माध्यम से)।
टोपोलॉजी/आत्मीयता: भंडारण के बगल में नोड्स के लिए पिन पैड (कम विलंबता)।
महत्वपूर्ण: एचपीए/वीपीए एक खराब ड्राइव को "ठीक" नहीं करेगा; प्लान SLO वॉल्यूम, स्टेटफुल नेटवर्क के लिए PodDisionSumper बजट का उपयोग
स्नैपशॉट, क्लोन, स्थिरता समूह
क्रैश-सुसंगत स्नैपशॉट तेज हैं, लेकिन डेटाबेस विसंगतियां संभव हैं।
ऐप-सुसंगत - quiesce स्क्रिप्ट (fsfreeze, pree/post hooks DB) के माध्यम से।
संगति समूह (सीजी) - एक ही समय में कई एलयूएन (लेन-देन प्रणालियों) के लिए।
क्लोन बिना नक़ल के त्वरित देव/परीक्षण वातावरण हैं।
सुरक्षा और अनुपालन
iSCSI CHAP/म्यूचुअल CHAP, VLAN/VRF अलगाव।
टीएलएस के साथ एनवीएमई/टीसीपी - क्रॉस-सेंटर/मल्टी-लीज परिदृश्यों के लिए।
एन्क्रिप्शन "आराम पर": LUKS/dm-crypt, सेल्फ-एन्क्रिप्टिंग ड्राइव (TCG ओपल), KMS में कुंजियाँ।
ऑडिट: जिसने LUN, FC ज़ोन परिवर्तन, मल्टीपाथ परिवर्तन की मैपिंग की।
डीआर और संचालन
तुल्यकालिक प्रतिकृति (RPO≈0) - विलंबता, छोटी दूरी को बढ़ाती है।
अतुल्यकालिक (RPO = N मिनट) - भू-दूरी, लॉग के साथ अधिकांश डेटाबेस के लिए स्वीकार्य।
रनबुक: MPIO पथ हानि, नियंत्रक हानि, डिस्क पुनर्निर्माण, पूल गिरावट, साइट स्विच।
सेवा खिड़कियां: "रोलिंग" नियंत्रक, विद्रोह सीमा ताकि प्रोड न खाएं।
FinOps (प्रति निष्पादन लागत)
$/IOPS और $/ms p99 OLTP के लिए अधिक उपयोगी "$/TB" हैं।
Tiering: गर्म OLTP - NVMe/RAID10; रिपोर्ट/अभिलेख - एचडीडी/ईसी।
प्रावधान और मूल्यह्रास: 30-50% आईओपीएस विकास के लिए योजना; विद्रोह/स्क्रब के तहत स्टॉक रखें।
एग्रेस/फैक्ट्री: भंडारण नेटवर्क और एचबीए/एनआईसी अद्यतन के लिए अलग बजट।
कार्यान्वयन जाँच सूची
- प्रोटोकॉल (NVMe-oF/FC/iSCSI) और पृथक कपड़े चयनित।
- RAID/EC और लोड टाइप पूल (OLTP/log/bacup) डिज़ाइन किए गए हैं।
- MPIO/ALUA/ANA और टाइमआउट कॉन्फ़िगर; चेक किया गया असफलता/पुनर्स्थापित।
- RAID, TRIM/Discard के लिए FS/संरेखण विनियमन के अनुसार सक्षम।
- कतार ट्यूनिंग/qdepth/read-ford; फियो प्रोफाइल (रैंड्रेड/राइट 4k, seq 1M) द्वारा मान्य।
- डिस्क/पथ/विलंबता निगरानी p95/p99, विद्रोह और थ्रॉटल के लिए अलर्ट।
- स्नैपशॉट (ऐप-सुसंगत) और सीजी; डीआर/वसूली परीक्षण।
- एन्क्रिप्शन और CHAP/TLS; संचालन के KMS ऑडिट में कुंजी।
- Kubernetes/CSI मापदंड, टोपोलॉजी और QoS प्रति वॉल्यूम।
सामान्य त्रुटियाँ
MPIO के बिना एक रास्ता → विफलता का एकल बिंदु।
RAID5/6 सिंक-राइट OLTP → हाई पी 99 राइट के तहत।
कोई TRIM → राइट-एम्प ग्रोथ और SSD क्षरण।
QD बहुत बड़ा है - "सुंदर" IOPS और डेटाबेस के लिए भयानक पूंछ।
OLTP → विलंबता कूदता के साथ "हॉट" वॉल्यूम पर ऑनलाइन त्याग।
'queue _ if _ no _ path' without टाइमआउट → "जमे हुए" सेवाएं एक आपदा में।
एक ही पूल में एनवीएमई और एचडीडी का मिश्रण - अप्रत्याशित विलंबता।
iGaming/fintech विशिष्ट
वॉलेट/ट्रांजेक्शनल डेटाबेस: NVMe + RAID10, एक अलग SLOG/NVMe पर सिंक्रोनस लॉग, p99 लिखें ≤ 1। 5 एमएस, सीजी स्नैपशॉट।
भुगतान कतारें/विरोधी धोखाधड़ी: धारावाहिक लॉग - बड़े ब्लॉक, उच्च बैंडविड्थ, लॉग और डेटा के लिए अलग LUN।
पीक टीपीएस (टूर्नामेंट/मैच): प्री-वार्म डेटाबेस कैश, हेडरूम ≥ 30%, थर्मल थ्रॉटल कंट्रोल, बर्न-रेट एसएलओ।
नियामक: LUN एन्क्रिप्शन, मैपिंग ऑडिट लॉग, DR अभ्यास, RPO/RTO रिपोर्टिंग।
कुल
उत्पादक ब्लॉक भंडारण सही प्रोटोकॉल + सही ढंग से कॉन्फ़िगर की गई कतारें और qdepth + पर्याप्त RAID/EC + कैश/बैरियर अनुशासन + पृथक कपड़े हैं। रनबुक में सब कुछ पिन करें, p95/p99 मापें, फियो प्रोफाइल के साथ मान्य करें, स्नैपशॉट और डीआर स्वचालित करें - और महत्वपूर्ण उत्पाद और नकदी प्रवाह पथ के लिए आवश्यक अनुमानित विलंबता और आईओपीएस प्रास्ट लें।