חסימת אחסון וביצועים
תקציר
אחסון בלוקים נותן התקנים גולמיים (LUN/volume) שמעליהם בונים FS, LVM/ZFS וכו '. ביצועים נקבעים על ידי סוג מדיה, פרוטוקול גישה, תורים ועומק, גודל בלוק, סכימת קידוד (RAID/EC), מטמונים ומחסומים, סריג רשת, ודפוס I/O ספציפי יישומי (אקראי/רציף, קריאה/כתיבה, סינכרון/אסינק). המטרה היא לספק את ה-p95/p99 latency ו-IOPS/badwide עם רוביזציה וחיזוי.
לחסום טקסונומיה גישה
מקומי: NVMe (PCIE), SAS/SATA SSD/HDD. איחור מינימלי, אין צווארי בקבוק רשת.
רשת:- ISSI (Ethernet, LUN, MPIO, ALUA).
- Fibre Channel (FC) (16-64G, Latency Latency, Zoning).
- NVMe-oF: NVMe/TCP, NVME/ROCE, NVME/FC - ”Native” NVME מעל הרשת, פחות תקורה.
- HCI/מבוזר (Ceph RBD, VSAN): קשקשים נוחים, אבל latency הוא גבוה יותר, network/coding הוא קריטי.
- P99 latency film 1-2 ms, IOPS גבוה מאוד # NVMe/NVME-oF מקומי.
- Stable ”Mean” Latency 2-5 ms, message # FC או NVME/FC Factory.
- מאוחד על Ethernet, קל יותר לתפעול = iSCSI או NVME/TCP.
פרוטוקולים ותווי הפנים שלהם
iSSI: רב-גוניות, MPIO/ALUA, רגישות תצורת TCP (MTU, פריקה, qdepth).
FC: בידוד, זרימות ללא הפסד, אזורי WWPN, תורים ל-HBA וקרדיטים.
NVMe-oF: מקבילית באמצעות מספר תורים של Submission/Completion, low CPU load, TLS אפשרי עבור NVME/TCP (במידת הצורך).
RAID/EC ומדיה
RAID10 - איחור מינימלי וצפוי; אופטימלי עבור מסדי נתונים/ארנקים.
RAID5/6 טוב יותר בתפקיד, עונש כתיבה, טיפות IOPS לסנכרון-כתיבה.
קידוד מחיקה במערכים מבוזרים הוא יתרון במונחים של קיבולת, אבל הקלטה היא ”יותר יקרה”.
NVMe SSD - p99 top; SAS SSD - פשרה; HDD הוא רוחב פס רציף, אבל אקראי רע.
מערכות קבצים ויישור
XFS היא בחירה מצוינת עבור קבצי מסד נתונים/יומנים גדולים; ניתן להתאימה אישית 'agcount',' realtime 'עבור יומנים.
ext4 - רב תכליתי, בזהירות כדי 'stride/stripe _ width' עבור RAID.
ZFS - COW, בדיקת שלמות, צילום/העתק, ARC/ZIL/SLOG; לעומסי סנכרון - SLOG על NVME עם PLP.
יישור: 1MiB-aligned מחיצות, נכון ”רקורדסיז ”/” בלוקסיז” תחת עומס.
תורים, עומק וגודל בלוק
ה-IOPS עולים עם תור עומק, אבל כך גם איחור; מטרה - QD, שנותן IOPS הנדרש במהלך p95/p99 בקרה.
גודל בלוק: קטן (4-16K) - יותר IOPS, רוחב פס גרוע יותר; גדול (128K-1M) - מהירות מקצה לקצה טובה יותר.
qpairs NVMe: להקצות על ידי ליבות/NUMA; ISSI/FC: qdepth HBA/יוזמים, מדיניות MPIO.
מחסומים ו-FUA: כולל מחסומי כתיבה להגביר אמינות אבל להגדיל p99; קיזוז SLOG/PLP.
multipath וזמינות
MPIO/DM-Multipath: צבירה נתיב, סובלנות פגומה.
פוליטיקאים: 'סיבוב-רובין' (מאזן), 'תור-אורך' (חכם יותר), 'כשל' (נכס-אחריות).
אלואה ”העדיפה” את הבקר הפעיל.
חשוב: ”no _ path _ retry”, ”תור _ if _ no _ path” - בזהירות כדי לא ”להקפיא” I/O במשך דקות ארוכות.
אזור ייזום אחד - מטרה אחת (מפחית את רדיוס הפיצוץ).
NVME-oF: ANA (Asymmetric Namespace Access).
TRIM/Diskard and Caping
TRIM/Diskard משחרר בלוקים של SSD (מנורות כתיבה, מייצב איחור). הפעל באופן קבוע (cron) או להיפטר באינטרנט במקום המתאים.
קריאה מראש שימושית לקריאות רצופות; מזיק באקראי.
מחסני בקר כתיבה לאחור - עם BBU/PLP בלבד; אחרת, הסיכון של איבוד נתונים.
מחסנית רשת (עבור iSCSI/NVMe-TCP)
VLAN/VRF נפרד עבור מפעל SRF; בידוד מתנועת לקוחות.
MTU 9000 מקצה לקצה; RSS/RPS ו ־ IRQ מצמידים ל ־ NUMA.
QOS/עדיפות עבור RoCE (אם lossless), ECN/RED עבור פסגות TCP.
שני עצים שמנים עצמאיים עד סטוראג '(TORS כפול, אוכלי כוח שונים).
Linux/Host Tuning (דגימה)
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
Multipath (שבר 'multipath. 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
}
}
ספסל וסימון פרופיל
סט מינימלי של פרופילים: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/volume, לא FS (אם המטרה היא חומרה גולמית).
מדד p95/p99 latency ו ־ 99. 9% זנב - הם אלה ש ”הורגים” את בסיס הנתונים.
ניטור ו SLO
מדדים:- latency p50/p95/p99 (קריאה/כתיבה), IOPS, breadput, תור-עומק, התקן עסוק%, מתמזג, נפסל.
- ברמת הרשת: טיפות, תרגומים מחדש, סימני ECN, שגיאות ממשק.
- ברמת המערך: lag שכפול, recovery/resulver progress, Wrough-amp, Blow-level SSD.
- LUN Intelligence (OLTP): p99 Write 1. 5ms, p99 לקרוא 1. 0 ms, זמינות 99. 95%.
- יומנים: p95 append 2. 5 מ ”מ, רוחב פס 400 מ” ב לנפח.
- גיבויים: seq write minh1 GB/S (מקובץ), Returance RTO latch 15 דקות.
- p99 latency> סף N דקות, השפלה של IOPS עם אותו QD, צמיחה של קריאה-שינוי-כתיבה RAID5/6, התחממות יתר/מצערת תרמית SSD, התחיל/תקוע צלעות.
קוברנטס
PVC/Class: הפרמטרים 'reclaimPolicy', ' Binness Mode = Formast Consumer' (מיקום נכון), ' Extension'.
תוספי CSI: תצלומים/שיבוטים, מדיניות QOS/ביצועים, נפח טופולוגיה.
Modes: RWO לבסיס נתונים/מצב, RWX - בזהירות (בדרך כלל באמצעות קובץ/רשת).
טופולוגיה/זיקה: רפידות לצמתים לצד אחסון (latency) נמוך.
חשוב: HPA/VPA לא ”ירפא” כונן רע; כרכי תוכנית SLO, השתמשו בתקציב PODBOARD לרשתות סטטיסטיות.
תמונות, שיבוטים, קבוצות עקביות
תצלומי קריסה-עקביים הם מהירים, אבל סתירות מסד נתונים אפשריות.
אפליקציה עקבית - באמצעות תסריטי quiesce (fsfreeze, pree/post wooks DB).
קבוצת עקביות (CG) - עבור מספר מערכות LUNS (transactional systems) בו זמנית.
שיבוטים הם סביבת dev/מבחן מהירה ללא העתקה.
בטיחות וציות
ISSI CHAP/CHAP הדדי, בידוד VLAN/VRF.
NVME/TCP עם TLS לתרחישים חוצים מרכז/רב-שכירות.
הצפנה ”במנוחה”: LUKS/dm-cript, כוננים להצפנה עצמית (TCG Opal), מפתחות ב-KMS.
מי מיפה את ה-LUN, שינוי אזור FC, שינויים מרובים.
DR ומבצעים
העתק סינכרוני (RPO temporate 0) - מגביר את האחוריות, מרחקים קצרים.
Asynchronous (RPO = N min) - מרחק גיאו, מקובל עבור רוב בסיסי הנתונים עם יומנים.
רנטגן: אובדן נתיב MPIO, אובדן בקר, בנייה מחדש של דיסק, הידלדלות בריכה, מתג אתר.
חלונות שירות: בקרים ”מתגלגלים”, מגבלות שימוש חוזר כדי לא לאכול פרוד.
FinOps (עלות לכל ביצוע)
$/IOPS ו $/ms p99 שימושיים יותר עבור OLTP.
טירינג: OLTP - NVMe/RAID10; דיווחים/ארכיון - HDD/EC.
הוראות ופחת: תוכנית לגידול של 30-50% ב-IOPS; לשמור על מלאי תחת Rebilds/סקראבס.
Egress/Factory: תקציב נפרד לרשת אחסון ועדכוני HBA/NIC.
רשימת יישומים
פרוטוקול (NVME-oF/FC/iSCSI) ובד מבודד שנבחר.
[ תוכננו ] RAID/EC ו-OLTP/Log/Tebup.
[ הגדרות ] MPIO/ALUA/ANA ופסקי זמן; בדק כשל/לשחזר.
[ ] FS/יישור עבור RAID, TRIM/Discard התאפשר על פי תקנה.
[ ] כוונון תור/qdepth/read-award; מאומתת על ידי פרופילי פיו (רנדריד/כתב 4k, seq 1M).
[ ] דיסק/שביל/ניטור latency p95/p99, התראות לרבילדות ומצערת.
[ ] Snapshots (אפליקציה עקבית) ו ־ CG; בדיקת התאוששות ד "ר/.
[ הצפנה ] ו ־ CHAP/TLS; מפתחות בביקורת המבצעים של KMS.
[ ] פרמטרים של קוברנטס/CSI, טופולוגיה ו QOS לנפח.
שגיאות נפוצות
נתיב אחד ללא MPIO = נקודה אחת של כישלון.
RAID5/6 תחת כתיבת OLTP * high p99 write.
אין TRIM = צמיחת מגבר כתיבה והשפלת SSD.
QD גדול מדי = ”יפה” IOPS וזנב נורא עבור מסד הנתונים.
זרוק באינטרנט בכרכים ”חם” עם OLTP Latency Laps קופץ.
"Queue _ if _ no _ path 'without timeout = =" frozen "services באסון.
ערבוב NVME ו-HDD באותה בריכה.
iGaming/fintech ספציפי
מסדי נתונים של ארנק/טרנספורמציה: NVMe + RAID10, יומן סינכרוני על בסיס נפרד של SLOG/NVME, p99 כתוב light 1. 5, צילומי סי-ג 'י.
תורים בתשלום/אנטי הונאה: יומנים סדרתיים = בלוקים גדולים, רוחב פס גבוה, לולאות נפרדות עבור יומן ונתונים.
Peak TPS (טורנירים/גפרורים): כאבי בסיס נתונים טרום-חמים, חדר ראש 30%, בקרת מצערת תרמית, SLO-קצב צריבה.
רגולציה: הצפנת LUN, רישום ביקורת מיפוי, תרגילי DR, דיווח RPO/RTO.
סך הכל
אחסון בלוקים פרודוקטיבי (באנגלית: Productive Block Storage) הוא הפרוטוקול הנכון + תורים מוגדרים נכון ו-qdepth + RAID/EC + cache/starm discription + סריג מבודד. להצמיד הכל בספרי הפעלה, למדוד p95/p99, לאמת עם פרופילי פיו, תמונות אוטומטיות ו-DR - ולקבל את האיחור הצפוי ו-IOPS הדרושים למוצר קריטי ונתיבי תזרים מזומנים.