ค้นหาเว็บไซต์

สร้างที่เก็บข้อมูลที่ปลอดภัยแบบรวมศูนย์โดยใช้ iSCSI Target บน RHEL/CentOS/Fedora Part -I


iSCSI เป็นโปรโตคอลระดับบล็อกสำหรับการแชร์ อุปกรณ์จัดเก็บข้อมูล RAW บนเครือข่าย TCP/IP การแชร์และการเข้าถึงพื้นที่เก็บข้อมูลบน iSCSI สามารถใช้กับเครือข่าย IP และอีเทอร์เน็ตที่มีอยู่ เช่น NIC , Switched, เราเตอร์ ฯลฯ เป้าหมาย iSCSI คือฮาร์ดดิสก์ระยะไกลที่แสดงจากเซิร์ฟเวอร์ iSCSI เป้าหมาย (หรือ) ระยะไกล

เราไม่ต้องการทรัพยากรที่สูงสำหรับการเชื่อมต่อและประสิทธิภาพที่เสถียรในฝั่งไคลเอ็นต์ เซิร์ฟเวอร์ iSCSI เรียกว่า เป้าหมาย ซึ่งเป็นการแชร์ที่เก็บข้อมูลจากเซิร์ฟเวอร์ ไคลเอนต์ iSCSI เรียกว่า Initiator ซึ่งจะเข้าถึงพื้นที่เก็บข้อมูลที่แชร์จากเซิร์ฟเวอร์เป้าหมาย มีอะแดปเตอร์ iSCSI ในตลาดสำหรับบริการพื้นที่จัดเก็บข้อมูลขนาดใหญ่ เช่น SAN Storage

เหตุใดเราจึงต้องมีอะแดปเตอร์ iSCSI สำหรับพื้นที่จัดเก็บข้อมูลขนาดใหญ่

อะแดปเตอร์อีเทอร์เน็ต (NIC) ได้รับการออกแบบมาเพื่อถ่ายโอนข้อมูลระดับไฟล์แบบแพ็คเก็ตระหว่างระบบ เซิร์ฟเวอร์ และอุปกรณ์จัดเก็บข้อมูล เช่น อุปกรณ์จัดเก็บข้อมูล NAS ซึ่งไม่สามารถถ่ายโอนข้อมูลระดับบล็อกผ่านอินเทอร์เน็ตได้

คุณสมบัติของเป้าหมาย iSCSI

  1. สามารถรัน iSCSI เป้าหมายหลายรายการบนเครื่องเดียวได้
  2. เครื่องเดียวที่สร้างเป้าหมาย iscsi หลายเป้าหมายบน iSCSI SAN
  3. เป้าหมายคือที่เก็บข้อมูลและทำให้พร้อมใช้งานสำหรับผู้ริเริ่ม (ไคลเอนต์) ผ่านเครือข่าย
  4. พื้นที่จัดเก็บข้อมูลเหล่านี้ถูกรวมเข้าด้วยกันเพื่อให้พร้อมใช้งานบนเครือข่ายคือ iSCSI LUN (หมายเลขหน่วยลอจิคัล)
  5. iSCSI รองรับการเชื่อมต่อหลายรายการภายในเซสชันเดียวกัน
  6. ตัวเริ่มต้น iSCSI ค้นหาเป้าหมายในเครือข่าย จากนั้นตรวจสอบสิทธิ์และเข้าสู่ระบบด้วย LUN เพื่อรับที่เก็บข้อมูลระยะไกลในเครื่อง
  7. เราสามารถติดตั้งระบบปฏิบัติการใดๆ ใน LUN ที่ติดตั้งในเครื่องได้เหมือนกับที่เราใช้ติดตั้งในระบบฐานของเรา

เหตุใดจึงต้องมี iSCSI

ในระบบเสมือนจริง เราต้องการพื้นที่จัดเก็บข้อมูลที่มีความซ้ำซ้อนและความเสถียรสูง iSCSI มอบสิ่งเหล่านั้นทั้งหมดด้วยต้นทุนที่ต่ำ การสร้าง SAN Storage ในราคาที่ต่ำเมื่อเปรียบเทียบกับ Fibre Channel SAN เราสามารถใช้อุปกรณ์มาตรฐานในการสร้าง SAN โดยใช้ฮาร์ดแวร์ที่มีอยู่ เช่น NIC, Ethernet Switched เป็นต้น

เริ่มติดตั้งและกำหนดค่า Secure Storage แบบรวมศูนย์โดยใช้ iSCSI Target สำหรับคำแนะนำนี้ ฉันได้ใช้การตั้งค่าต่อไปนี้

  1. เราต้องแยก 1 ระบบเพื่อตั้งค่า iSCSI Target Server และ Initiator (Client)
  2. คุณสามารถเพิ่มฮาร์ดดิสก์ได้หลายหมายเลขในสภาพแวดล้อมการจัดเก็บข้อมูลขนาดใหญ่ แต่ที่นี่เราใช้ไดรฟ์เพิ่มเติมเพียง 1 ตัวยกเว้นดิสก์การติดตั้งฐาน
  3. ที่นี่เราใช้เพียง 2 ไดรฟ์ หนึ่งไดรฟ์สำหรับการติดตั้งเซิร์ฟเวอร์ฐาน และอีกไดรฟ์หนึ่งสำหรับการจัดเก็บ (LUN) ซึ่งเราจะสร้างใน PART-II ของซีรีส์นี้
การตั้งค่าเซิร์ฟเวอร์หลัก
  1. ระบบปฏิบัติการ – CentOS รีลีส 6.5 (สุดท้าย)
  2. IP เป้าหมาย iSCSI – 192.168.0.200
  3. พอร์ตที่ใช้: TCP 860, 3260
  4. ไฟล์การกำหนดค่า: /etc/tgt/targets.conf

ซีรีส์นี้จะมีชื่อว่าการเตรียมการสำหรับการตั้งค่า พื้นที่จัดเก็บข้อมูลที่ปลอดภัยแบบรวมศูนย์โดยใช้ iSCSI จนถึงส่วนที่ 1-3 และครอบคลุมหัวข้อต่อไปนี้

การติดตั้งเป้าหมาย iSCSI

เปิดเทอร์มินัลแล้วใช้คำสั่ง yum เพื่อค้นหาชื่อแพ็คเกจที่ต้องติดตั้งสำหรับเป้าหมาย iscsi

yum search iscsi
ผลลัพธ์ตัวอย่าง
========================== N/S matched: iscsi =======================
iscsi-initiator-utils.x86_64 : iSCSI daemon and utility programs
iscsi-initiator-utils-devel.x86_64 : Development files for iscsi-initiator-utils
lsscsi.x86_64 : List SCSI devices (or hosts) and associated information
scsi-target-utils.x86_64 : The SCSI target daemon and utility programs

เราได้รับผลการค้นหาตามด้านบน เลือกแพ็คเกจ เป้าหมาย และติดตั้งเพื่อทดลองเล่น

yum install scsi-target-utils -y

แสดงรายการแพ็คเกจที่ติดตั้งเพื่อทราบการกำหนดค่าเริ่มต้น บริการ และตำแหน่งหน้าคู่มือ

rpm -ql scsi-target-utils.x86_64

มาเริ่มบริการ iSCSI และตรวจสอบสถานะของบริการและทำงานอยู่ บริการ iSCSI ชื่อเป็น tgtd

/etc/init.d/tgtd start
/etc/init.d/tgtd status

ตอนนี้เราต้องกำหนดค่าให้เริ่มโดยอัตโนมัติในขณะที่เริ่มต้นระบบ

chkconfig tgtd on

จากนั้น ตรวจสอบว่าระดับการทำงานที่กำหนดค่าไว้อย่างถูกต้องสำหรับบริการ tgtd

chkconfig --list tgtd

ลองใช้ tgtadm เพื่อแสดงรายการเป้าหมายและ LUNS ที่เรากำหนดค่าไว้ในเซิร์ฟเวอร์ของเรา

tgtadm --mode target --op show

tgtd ติดตั้งและทำงาน แต่ไม่มี เอาต์พุต จากคำสั่งข้างต้น เนื่องจากเรายังไม่ได้กำหนด LUN ในเซิร์ฟเวอร์เป้าหมาย สำหรับหน้าคู่มือ ให้เรียกใช้คำสั่ง 'man'

man tgtadm

สุดท้ายนี้ เราจำเป็นต้องเพิ่มกฎ iptables สำหรับ iSCSI หากมีการใช้งาน iptables ในเซิร์ฟเวอร์เป้าหมายของคุณ ขั้นแรก ค้นหาหมายเลขพอร์ตของเป้าหมาย iscsi โดยใช้คำสั่ง netstat ต่อไปนี้ เป้าหมายจะรับฟังพอร์ต TCP 3260 เสมอ

netstat -tulnp | grep tgtd

ถัดไปเพิ่มกฎต่อไปนี้เพื่ออนุญาตให้ iptables ออกอากาศการค้นพบเป้าหมาย iSCSI

iptables -A INPUT -i eth0 -p tcp --dport 860 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 3260 -m state --state NEW,ESTABLISHED -j ACCEPT

หมายเหตุ: กฎอาจแตกต่างกันไปตามนโยบาย CHAIN เริ่มต้น ของคุณ จากนั้นบันทึก Iptables และรีสตาร์ท iptables

iptables-save
/etc/init.d/iptables restart

ที่นี่เราได้ปรับใช้เซิร์ฟเวอร์เป้าหมายเพื่อแบ่งปัน LUN ให้กับตัวเริ่มต้นใดๆ ที่รับรองความถูกต้องกับเป้าหมายผ่าน TCP/IP ซึ่งเหมาะสำหรับสภาพแวดล้อมการผลิตขนาดเล็กถึงขนาดใหญ่เช่นกัน

ในบทความถัดไปของฉัน ฉันจะแสดงให้คุณเห็นถึงวิธีการสร้าง LUN โดยใช้ LVM ในเซิร์ฟเวอร์เป้าหมาย และวิธีการแบ่งปัน LUN บนเครื่องไคลเอนต์ จนกว่าจะถึงตอนนั้น โปรดคอยติดตาม TecMint เพื่อรับการอัปเดตเพิ่มเติม และอย่าลืมแสดงความคิดเห็นอันมีค่า