สร้างที่เก็บข้อมูลที่ปลอดภัยแบบรวมศูนย์โดยใช้ iSCSI Target/Initiator บน RHEL/CentOS 7 - ตอนที่ 12
iSCSI เป็นโปรโตคอลระดับบล็อกสำหรับจัดการอุปกรณ์จัดเก็บข้อมูลบนเครือข่าย TCP/IP โดยเฉพาะในระยะทางไกล เป้าหมาย iSCSI คือฮาร์ดดิสก์ระยะไกลที่แสดงจากเซิร์ฟเวอร์ iSCSI ระยะไกล (หรือ) เป้าหมาย ในทางกลับกัน ไคลเอ็นต์ iSCSI เรียกว่า Initiator และจะเข้าถึงพื้นที่เก็บข้อมูลที่ใช้ร่วมกันในเครื่อง Target
บทความนี้มีการใช้เครื่องจักรต่อไปนี้:
เซิร์ฟเวอร์ (เป้าหมาย):
Operating System – Red Hat Enterprise Linux 7
iSCSI Target IP – 192.168.0.29
Ports Used : TCP 860, 3260
ลูกค้า (ผู้ริเริ่ม):
Operating System – Red Hat Enterprise Linux 7
iSCSI Target IP – 192.168.0.30
Ports Used : TCP 3260
ขั้นตอนที่ 1: การติดตั้งแพ็คเกจบนเป้าหมาย iSCSI
ในการติดตั้งแพ็คเกจที่จำเป็นสำหรับเป้าหมาย (เราจะจัดการกับไคลเอนต์ในภายหลัง) ให้ทำ:
yum install targetcli -y
เมื่อการติดตั้งเสร็จสิ้นเราจะเริ่มและเปิดใช้บริการดังนี้:
systemctl start target
systemctl enable target
สุดท้ายนี้ เราจำเป็นต้องอนุญาตบริการในไฟร์วอลล์:
firewall-cmd --add-service=iscsi-target
firewall-cmd --add-service=iscsi-target --permanent
และสุดท้ายแต่ไม่ท้ายสุด เราต้องไม่ลืมที่จะอนุญาตให้ iSCSI ค้นพบเป้าหมาย:
firewall-cmd --add-port=860/tcp
firewall-cmd --add-port=860/tcp --permanent
firewall-cmd --reload
ขั้นตอนที่ 2: การกำหนด LUN ในเซิร์ฟเวอร์เป้าหมาย
ก่อนที่จะดำเนินการกำหนด LUN ใน เป้าหมาย เราจำเป็นต้องสร้างโลจิคัลวอลุ่มสองตัวตามที่อธิบายไว้ในส่วนที่ 6 ของซีรีส์ RHCSA (“การกำหนดค่าที่เก็บข้อมูลระบบ” ").
ครั้งนี้เราจะตั้งชื่อพวกมันว่า vol_projects
และ vol_backups
และวางไว้ในกลุ่มวอลุ่มที่เรียกว่า vg00
ดังแสดงในรูปที่ 1 อย่าลังเลที่จะ เลือกพื้นที่ที่จัดสรรให้กับแต่ละ LV:
หลังจากสร้าง LVs เราก็พร้อมที่จะกำหนด LUN ใน เป้าหมาย เพื่อให้พร้อมใช้งานสำหรับเครื่องไคลเอนต์
ดังแสดงใน รูปที่ ในวันที่ 2 เราจะเปิดเชลล์ targetcli
และออกคำสั่งต่อไปนี้ ซึ่งจะสร้างบล็อกแบ็คสโตร์สองบล็อก (ทรัพยากรที่เก็บข้อมูลในเครื่องที่เป็นตัวแทนของ LUN ที่ตัวเริ่มต้นจะใช้จริง) และ Iscsi Qualified Name (IQN) ซึ่งเป็นวิธีการจัดการกับเซิร์ฟเวอร์เป้าหมาย
โปรดดูหน้า 32 ของ RFC 3720 สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับโครงสร้างของ IQN โดยเฉพาะอย่างยิ่ง ข้อความหลังอักขระโคลอน (:tgt1)
ระบุชื่อของเป้าหมาย ในขณะที่ข้อความก่อน (server:)
ระบุชื่อโฮสต์ของเป้าหมายภายใน โดเมน.
targetcli
cd backstores
cd block
create server.backups /dev/vg00/vol_backups
create server.projects /dev/vg00/vol_projects
cd /iscsi
create iqn.2016-02.com.tecmint.server:tgt1
จากขั้นตอนข้างต้น TPG (กลุ่มพอร์ทัลเป้าหมาย) ใหม่ได้ถูกสร้างขึ้นพร้อมกับพอร์ทัลเริ่มต้น (คู่ที่ประกอบด้วยที่อยู่ IP และพอร์ตซึ่งเป็นตัวเริ่มต้นทาง สามารถเข้าถึงเป้าหมาย) ฟังบนพอร์ต 3260 ของที่อยู่ IP ทั้งหมด
หากคุณต้องการผูกพอร์ทัลของคุณกับ IP เฉพาะ (เช่น IP หลักของเป้าหมาย) ให้ลบพอร์ทัลเริ่มต้นและสร้างพอร์ทัลใหม่ดังนี้ (ไม่เช่นนั้น ให้ข้ามคำสั่ง targetcli ต่อไปนี้ โปรดทราบว่าเพื่อความเรียบง่าย เราได้ข้ามไปเช่นกัน):
cd /iscsi/iqn.2016-02.com.tecmint.server:tgt1/tpg1/portals
delete 0.0.0.0 3260
create 192.168.0.29 3260
ตอนนี้เราพร้อมที่จะดำเนินการสร้าง LUN แล้ว โปรดทราบว่าเรากำลังใช้ backstores ที่เราสร้างไว้ก่อนหน้านี้ (server.backups
และ server.projects
) กระบวนการนี้แสดงไว้ในรูปที่ 3:
cd iqn.2016-02.com.tecmint.server:tgt1/tpg1/luns
create /backstores/block/server.backups
create /backstores/block/server.projects
ส่วนสุดท้ายในการกำหนดค่าเป้าหมายประกอบด้วยการสร้างรายการควบคุมการเข้าถึงเพื่อจำกัดการเข้าถึงตามแต่ละผู้ริเริ่ม เนื่องจากเครื่องไคลเอนต์ของเราชื่อ “ไคลเอนต์ ” เราจะเพิ่มข้อความนั้นต่อท้าย IQN อ้างถึง รูป 4 สำหรับรายละเอียด:
cd ../acls
create iqn.2016-02.com.tecmint.server:client
ณ จุดนี้ เราสามารถเชลล์ targetcli เพื่อแสดงทรัพยากรที่กำหนดค่าทั้งหมด ดังที่เราเห็นใน รูปที่ 5:
targetcli
cd /
ls
หากต้องการออกจากเชลล์ targetcli เพียงพิมพ์ exit แล้วกด Enter การกำหนดค่าจะถูกบันทึกโดยอัตโนมัติไปที่ /etc/target/saveconfig.json
ดังที่คุณเห็นใน รูปที่ 5 ข้างต้น เรามีพอร์ทัลที่รับฟังพอร์ต 3260 ของที่อยู่ IP ทั้งหมดตามที่คาดไว้ เราสามารถตรวจสอบได้ว่าการใช้คำสั่ง netstat (ดู รูปที่ 6):
netstat -npltu | grep 3260
นี่เป็นการสรุปการกำหนดค่า เป้าหมาย อย่าลังเลที่จะรีสตาร์ทระบบและตรวจสอบว่าการตั้งค่าทั้งหมดผ่านการรีบูต ถ้าไม่ ตรวจสอบให้แน่ใจว่าได้เปิดพอร์ตที่จำเป็นในการกำหนดค่าไฟร์วอลล์ และเริ่มบริการเป้าหมายขณะบูต ตอนนี้เราพร้อมที่จะตั้งค่า Initiator และเชื่อมต่อกับลูกค้าแล้ว
ขั้นตอนที่ 3: การตั้งค่า Client Initiator
ในไคลเอนต์ เราจะต้องติดตั้งแพ็คเกจ iscsi-initiator-utils ซึ่งจัดเตรียม daemon เซิร์ฟเวอร์สำหรับโปรโตคอล iSCSI (iscsid) รวมถึง iscsiadm< ยูทิลิตี้การดูแลระบบ:
yum update && yum install iscsi-initiator-utils
เมื่อการติดตั้งเสร็จสมบูรณ์ ให้เปิด /etc/iscsi/initiatorname.iscsi และแทนที่ชื่อตัวเริ่มต้นเริ่มต้น (แสดงความเห็นใน รูปที่ 7) ด้วยชื่อที่ตั้งไว้ก่อนหน้านี้ใน ACL บนเซิร์ฟเวอร์ (iqn.2016-02.com.tecmint.server:client)
จากนั้นบันทึกไฟล์และเรียกใช้ iscsiadm ในโหมดการค้นพบโดยชี้ไปที่เป้าหมาย หากสำเร็จ คำสั่งนี้จะส่งคืนข้อมูลเป้าหมายดังแสดงใน รูปที่. 7:
iscsiadm -m discovery -t st -p 192.168.0.29
ขั้นตอนต่อไปประกอบด้วยการรีสตาร์ทและเปิดใช้งานบริการ iscsid:
systemctl start iscsid
systemctl enable iscsid
และติดต่อกับเป้าหมายในโหมดโหนด สิ่งนี้ควรส่งผลให้เกิดข้อความ ระดับเคอร์เนล ซึ่งเมื่อบันทึกผ่าน dmesg แสดง การระบุอุปกรณ์ที่ LUN ระยะไกลได้รับในระบบภายในเครื่อง (sde และ sdf ใน รูปที่ 8):
iscsiadm -m node -T iqn.2016-02.com.tecmint.server:tgt1 -p 192.168.0.29 -l
dmesg | tail
จากจุดนี้เป็นต้นไป คุณสามารถสร้างพาร์ติชัน หรือแม้แต่ LV (และระบบไฟล์ที่อยู่ด้านบนสุด) ได้ เช่นเดียวกับที่คุณทำกับอุปกรณ์จัดเก็บข้อมูลอื่น ๆ เพื่อความง่าย เราจะสร้างพาร์ติชันหลักบนดิสก์แต่ละแผ่นซึ่งจะใช้พื้นที่ว่างทั้งหมด และจัดรูปแบบด้วย ext4
สุดท้ายนี้ มาเมานต์ /dev/sde1 และ /dev/sdf1 บน /projects และ /backups ตามลำดับ ( โปรดทราบว่าจะต้องสร้างไดเรกทอรีเหล่านี้ก่อน):
mount /dev/sde1 /projects
mount /dev/sdf1 /backups
นอกจากนี้ คุณสามารถเพิ่มสองรายการใน /etc/fstab เพื่อให้ระบบไฟล์ทั้งสองติดตั้งโดยอัตโนมัติเมื่อบูตโดยใช้ UUID ของระบบไฟล์แต่ละระบบตามที่ส่งคืนโดย blkidแข็งแกร่ง>.
โปรดทราบ ว่าต้องใช้ตัวเลือกการเมานต์ _netdev เพื่อเลื่อนการเมาท์ของระบบไฟล์เหล่านี้จนกว่าบริการเครือข่ายจะเริ่มต้น:
ตอนนี้คุณสามารถใช้อุปกรณ์เหล่านี้ได้เหมือนกับที่คุณใช้กับสื่อบันทึกข้อมูลอื่นๆ
สรุป
ในบทความนี้ เราได้กล่าวถึงวิธีการตั้งค่าและกำหนดค่า iSCSI Target และ Initiator ในการกระจาย RHEL/CentOS 7 แม้ว่างานแรกจะไม่ได้เป็นส่วนหนึ่งของความสามารถที่จำเป็นของการสอบ EX300 (RHCE) แต่ก็จำเป็นเพื่อดำเนินการหัวข้อที่สอง
อย่าลังเลที่จะแจ้งให้เราทราบหากคุณมีคำถามหรือความคิดเห็นเกี่ยวกับบทความนี้ โปรดส่งข้อความถึงเราโดยใช้แบบฟอร์มความคิดเห็นด้านล่าง
ต้องการตั้งค่า iSCSI Target และ Client Initiator บน RHEL/CentOS 6 ให้ทำตามคำแนะนำนี้: การตั้งค่าพื้นที่เก็บข้อมูล iSCSI แบบรวมศูนย์ด้วย Client Initiator