iSCSI — פרוטוקול המעביר פקודות SCSI דרך TCP/IP, הופך Ethernet לערוץ גישה בלוקים. הכאב הטיפוסי: מערכת קבצים של DB נגררת על NFS share, כי נעילות ו-FSYNC מתעכבים. iSCSI נותן דיסק RAW עם חביון מינימלי — יישומים רואים אותו כדיסק SCSI מקומי. אנו מגדירים Target ו-Initiator כולל הכל: מ-LUN פשוט ועד multipath עמיד לתקלות עם CHAP ו-jumbo frames. מהנדסים מוסמכים עם ניסיון של 10+ שנים מבטיחים תאימות עם VMware, Hyper-V, מערכות קבצים קלסטריות, מסדי נתונים. חיסכון בתשתית: iSCSI על רשת Ethernet קיימת עולה פי 3-5 פחות מ-Fibre Channel, ובאופטימיזציה נותן עד 200,000 IOPS. ב-150+ פרויקטים צברנו שיטות עבודה מומלצות לכל תרחיש.
למה iSCSI ולא NFS?
NFS עובד ברמת קבצים, מוסיף תקורה ונעילות. iSCSI מעביר פקודות בלוקים של SCSI מעל TCP/IP, ומספק ללקוח דיסק RAW. זה קריטי למסדי נתונים (PostgreSQL, MySQL), מערכות קבצים קלסטריות (GFS2, OCFS2) ווירטואליזציה (KVM, Hyper-V). לפי RFC 7143, iSCSI מספק גישת בלוקים עם חביון מינימלי. בבדיקות fio, iSCSI על מערכי SSD מראה פי 2-3 יותר IOPS בכתיבה אקראית מאשר NFS באותה רשת.
אילו בעיות טיפוסיות iSCSI פותר?
ראשונה — חביון גבוה בעבודה עם מסדי נתונים דרך NFS. שנייה — הצורך בגישה ישירה לבלוקים עבור מערכות קבצים קלסטריות (GFS2, OCFS2) או DB עם ניהול מטמון עצמי. שלישית — מגבלות תקציב: Fibre Channel יקר, ו-iSCSI עובד מעל תשתית Ethernet קיימת. רביעית — הגירה משרתים פיזיים לווירטואליזציה: iSCSI מאפשר לחבר כרכים בלוקים ל-OS אורח ללא תוכנה נוספת.
איך להגדיר target בלינוקס עם targetcli
מתקינים targetcli: apt install targetcli-fb. יוצרים אחסון בלוקים ו-target:
/> backstores/block create name=lun-db dev=/dev/sdb
/> backstores/block create name=lun-app dev=/dev/sdc
/> iscsi/ create iqn.2024-01.com.example:storage01
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/luns create /backstores/block/lun-db
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/luns create /backstores/block/lun-app
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/acls create iqn.2024-01.com.example:dbserver01
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/acls create iqn.2024-01.com.example:appserver01
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/portals delete ip_address=0.0.0.0 ip_port=3260
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/portals create 192.168.20.10 3260
/> saveconfigהקצו iSCSI ל-VLAN נפרד — תעבורת אחסון לא מתחרה בתעבורת יישומים. הפעלה אוטומטית: systemctl enable --now rtslib-fb-targetctl. לפריסות חוזרות אנו משתמשים ב-Ansible — התצורה מנוהלת גרסאות ב-Git ומשוכפלת תוך דקות.
איך להגן על iSCSI עם CHAP?
ללא CHAP, כל initiator עם IQN הנכון מקבל גישה. מגדירים אימות הדדי:
/> iscsi/iqn.2024-01.com.example:storage01/tpg1 set attribute authentication=1
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/acls/iqn.2024-01.com.example:dbserver01/ set auth userid=dbserver01
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/acls/iqn.2024-01.com.example:dbserver01/ set auth password=סיסמה-מורכבת-16+תווים
/> saveconfigהסיסמה חייבת להיות לפחות 16 תווים — זה חוסם ניחוש.
איך להגדיר initiator
בשרת הלקוח:
apt install open-iscsi
# מגדירים IQN ב-/etc/iscsi/initiatorname.iscsi:
InitiatorName=iqn.2024-01.com.example:dbserver01
# CHAP ב-/etc/iscsi/iscsid.conf:
node.session.auth.authmethod = CHAP
node.session.auth.username = dbserver01
node.session.auth.password = סיסמה-מורכבת-16+תווים
# גילוי וחיבור:
iscsiadm -m discovery -t sendtargets -p 192.168.20.10:3260
iscsiadm -m node -T iqn.2024-01.com.example:storage01 -p 192.168.20.10:3260 --login
# חיבור אוטומטי:
iscsiadm -m node -T iqn.2024-01.com.example:storage01 -p 192.168.20.10:3260 --op update -n node.startup -v automatic
systemctl enable iscsid open-iscsiלאחר החיבור בודקים את הסשן: iscsiadm -m session -P3 ורואים דיסק חדש ב-lsblk.
איך להגדיר multipath לעמידות בתקלות
אם ה-target זמין דרך שני ממשקי רשת, מגדירים multipath למעבר אוטומטי:
apt install multipath-tools
# /etc/multipath.conf:
defaults {
user_friendly_names yes
path_grouping_policy failover
failback immediate
no_path_retry 5
}
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
}
multipaths {
multipath {
wwid 360000000000000001
alias db-storage
}
}
systemctl enable --now multipathd
multipath -llלאחר ההגדרה עובדים עם /dev/mapper/db-storage — במקרה של כשל בנתיב אחד, multipath עובר לנתיב אחר עם זמן failover של פחות משנייה.
איך לייעל ביצועי iSCSI
כדי לנצל את הפוטנציאל של מערכי SSD, מגדירים jumbo frames (MTU 9000) על VLAN האחסון. פרמטרי סשן מגדילים את עומק התור:
ip link set eth1 mtu 9000 # ב-/etc/iscsi/iscsid.conf: node.session.cmds_max = 1024 node.session.queue_depth = 128 node.conn[0].timeo.noop_out_interval = 5 node.conn[0].timeo.noop_out_timeout = 5 הגדרות אלו מגדילות את רוחב הפס עד 40% בבלוקים גדולים. בתצורה נכונה, iSCSI נותן חביון < 1 ms, דומה ל-Fibre Channel. בנוסף, ניתן ליישם iSCSI Direct Connect לסביבות מבודדות.
שגיאות טיפוסיות בהגדרת iSCSI
- שימוש ב-MTU 1500 ללא jumbo frames על VLAN אחסון — ירידה של 20-30% ב-IOPS.
- חוסר CHAP — סיכון לגישה לא מורשית.
- נתיב רשת יחיד ללא multipath — נקודת כשל יחידה.
- סיסמאות CHAP קצרות מדי (< 16 תווים) — קל לנחש.
- תצורת דיסקים שגויה ב-target (write-back לעומת write-through) — לנתונים קריטיים רק write-through.
| השוואה | iSCSI | NFS | Fibre Channel |
|---|---|---|---|
| רמת גישה | בלוקים | קבצים | בלוקים |
| חביון טיפוסי | < 1 ms | 1-5 ms | < 0.5 ms |
| עלות | נמוכה | נמוכה | גבוהה |
| תמיכה במערכות קבצים קלסטריות | כן | לא | כן |
מתי כדאי לבחור iSCSI במקום Fibre Channel?
Fibre Channel נותן חביון מינימלי ובידוד, אך דורש ציוד יקר. iSCSI על 10GbE עם הגדרה נכונה מתקרב במאפיינים, אך עולה פי 3-5 פחות. אם בתשתית כבר יש מתגי Ethernet עם תמיכה ב-jumbo frames ותורים לא נדיפים, iSCSI הוא פתרון חסכוני. לסביבות עם חביון קריטי (< 0.5 ms) עדיף Fibre Channel, אך לרוב המשימות iSCSI מספיק.
מה כולל הגדרת iSCSI
| שלב | תוצאה |
|---|---|
| ביקורת רשת ועומסים נוכחיים | דוח עם המלצות ל-VLAN, MTU, ממשקי רשת |
| תכנון סכימת LUN ו-ACL | מפת גישות לפי IQN ו-CHAP |
| מימוש target+initiator | אחסון עובד עם multipath (במידת הצורך) |
| אינטגרציה עם הקלאסטר שלך | הגדרת Pacemaker/Corosync למעבר אוטומטי של target |
| בדיקת ביצועים | בדיקת עומס (fio) עם מדידות IOPS וחביון |
| תיעוד והדרכה | Runbook לתחזוקה, תיאור נהלי חירום |
זמנים משוערים: מיום אחד (תצורה בסיסית) עד 4 ימים (עם קלאסטר). העלות מחושבת לאחר ביקורת. צרו קשר — נעריך את התשתית שלכם ונציע תצורה אופטימלית. אנו מבטיחים: כל ההגדרות מכוסות בתיעוד, התצורות ניתנות לשחזור דרך Ansible (לפי בקשה). הזמינו ביקורת תשתית iSCSI — קבלו תוכנית הגירה מפורטת וחישוב ביצועים.







