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

สร้างที่เก็บข้อมูลที่ปลอดภัยแบบรวมศูนย์โดยใช้ 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