วิธีติดตั้ง Stratis เพื่อจัดการที่เก็บข้อมูลในเครื่องแบบเลเยอร์บน RHEL 8
Stratis เป็นหนึ่งในฟีเจอร์ใหม่ที่มาพร้อมกับการกระจาย RHEL 8 Stratis เป็นโซลูชันการจัดการพื้นที่เก็บข้อมูลในตัวเครื่องที่เน้นความเรียบง่ายและปรับปรุงการใช้งาน ในขณะเดียวกันก็ให้สิทธิ์เข้าถึงฟีเจอร์พื้นที่เก็บข้อมูลขั้นสูงด้วย ใช้ระบบไฟล์ XFS และให้คุณเข้าถึงความสามารถในการจัดเก็บข้อมูลขั้นสูง เช่น:
- การจัดเตรียมแบบบาง
- สแนปชอตระบบไฟล์
- การจัดระดับ
- การจัดการแบบพูล
- การตรวจสอบ
โดยพื้นฐานแล้ว Stratis คือพูลการจัดเก็บข้อมูลที่สร้างขึ้นจากดิสก์ในเครื่องหรือพาร์ติชันดิสก์ตั้งแต่หนึ่งรายการขึ้นไป Stratis ช่วยให้ผู้ดูแลระบบตั้งค่าและจัดการการกำหนดค่าพื้นที่จัดเก็บข้อมูลที่ซับซ้อน
ก่อนที่เราจะดำเนินการต่อ ให้เราดูคำศัพท์ทางเทคนิคบางประการที่คุณจะต้องเผชิญในระหว่างดำเนินการ:
- พูล: พูลประกอบด้วยอุปกรณ์บล็อกตั้งแต่หนึ่งชิ้นขึ้นไป ขนาดรวมของพูลเท่ากับผลรวมของอุปกรณ์บล็อก
- blockdev: ตามที่คุณอาจเดาได้ นี่หมายถึงอุปกรณ์บล็อก เช่น พาร์ติชันของดิสก์
- ระบบไฟล์: ระบบไฟล์เป็นเลเยอร์ที่มีการจัดเตรียมแบบบางซึ่งไม่ได้มีขนาดคงที่ทั้งหมด ขนาดที่แท้จริงของระบบไฟล์จะเพิ่มขึ้นเมื่อมีการเพิ่มข้อมูล Stratis ขยายขนาดของระบบไฟล์โดยอัตโนมัติเมื่อขนาดข้อมูลใกล้กับขนาดเสมือนของระบบไฟล์
อุปกรณ์บล็อกที่คุณสามารถใช้กับ Stratis ได้แก่:
- โลจิคัลวอลุ่ม LVM
- ลุคส์
- SSD (โซลิดสเตตไดรฟ์)
- อุปกรณ์ Mapper Multipath
- iSCSI
- HDD (ฮาร์ดดิสก์ไดรฟ์)
- เดรด
- อุปกรณ์จัดเก็บข้อมูล NVMe
ส่วนประกอบซอฟต์แวร์ของ Stratis
Stratis มีซอฟต์แวร์ยูทิลิตี้ 2 รายการ:
- Stratis-cli: นี่คือเครื่องมือบรรทัดคำสั่งที่มาพร้อมกับ Stratis
- Stratisd daemon: นี่คือ daemon ที่สร้างและจัดการอุปกรณ์บล็อก และมีบทบาทในการจัดหา DBUS API
วิธีการติดตั้ง Stratis บน RHEL 8
เมื่อพิจารณาแล้วว่า Stratis คืออะไร และให้คำจำกัดความคำศัพท์บางประการ ตอนนี้มาติดตั้งและกำหนดค่า Stratis บนการกระจาย RHEL 8 (ใช้ได้กับ CentOS 8 ด้วย)
ติดตั้ง Stratis บน RHEL 8
มาดูวิธีการติดตั้ง Stratis บนระบบ RHEL 8 ของคุณ เข้าสู่ระบบในฐานะผู้ใช้รูทและรันคำสั่ง
dnf install stratisd stratis-cli
หากต้องการค้นหาข้อมูลเพิ่มเติมเกี่ยวกับแพ็คเกจที่ติดตั้งให้รันคำสั่ง
rpm -qi stratisd stratis-cli
หลังจากติดตั้ง Stratis สำเร็จ ให้เริ่มบริการโดยเรียกใช้คำสั่ง
systemctl enable --now stratisd
หากต้องการตรวจสอบสถานะของ Stratis ให้เรียกใช้คำสั่ง
systemctl status stratisd
สร้างพูล Stratis
หากต้องการสร้างพูล Stratis คุณต้องบล็อกอุปกรณ์ที่ไม่ได้ใช้งานหรือติดตั้ง นอกจากนี้ ถือว่าบริการ Stratisd เปิดใช้งานแล้ว นอกจากนี้ อุปกรณ์บล็อกที่คุณจะใช้ต้องมีขนาดอย่างน้อย 1 GB
ในระบบ RHEL 8 ของเรา เรามีอุปกรณ์บล็อกเพิ่มเติมสี่รายการ: /dev/xvdb
, /dev/xvdc
, /dev/ xvdd
, /dev/xvde
. หากต้องการแสดงอุปกรณ์บล็อก ให้รันคำสั่ง lsblk
lsblk
อุปกรณ์บล็อกเหล่านี้ไม่ควรมีตารางพาร์ติชัน คุณสามารถยืนยันสิ่งนี้ได้โดยใช้คำสั่ง
blkid -p /dev/xvdb
หากคุณไม่ได้รับเอาต์พุต แสดงว่าอุปกรณ์บล็อกของคุณไม่มีตารางพาร์ติชันอยู่ อย่างไรก็ตาม ในกรณีที่มีตารางพาร์ติชัน คุณสามารถล้างข้อมูลได้โดยใช้คำสั่ง:
wipefs -a /<device-path>
สร้าง Stratis Pool จากอุปกรณ์บล็อกเดียว
คุณสามารถสร้างพูล Stratis จากอุปกรณ์บล็อกเดียวได้โดยใช้ไวยากรณ์
stratis pool create <pool-name> <block-device>
ตัวอย่างเช่นในการสร้างพูลจาก /dev/xvdb
ให้รันคำสั่ง
stratis pool create my_pool_1 /dev/xvdb
เพื่อยืนยันการรันพูลที่สร้างขึ้น
stratis pool list
สร้าง Stratis Pool จากอุปกรณ์บล็อกหลายตัว
หากต้องการสร้างพูลจากอุปกรณ์หลายเครื่อง ให้ใช้ไวยากรณ์ด้านล่างซึ่งแสดงรายการอุปกรณ์ทั้งหมดในบรรทัดเดียว
stratis pool create <pool_name> device-1 device-2 device-n
หากต้องการสร้างพูลจาก /dev/xvdc
, /dev/xvdd
และ /dev/xvde
ให้รันคำสั่ง
stratis pool create my_pool_2 /dev/xvdc /dev/xvdd/ /dev/xvde
อีกครั้ง แสดงรายการพูลที่มีอยู่โดยใช้คำสั่ง
stratis pool list
ณ จุดนี้ คุณควรมี 2 พูล: my_pool_1 และ my_pool_2
ดังที่คุณเห็นข้างต้น พื้นที่ว่างบนฮาร์ดดิสก์ที่พูล my_pool_2 นั้นเป็นสามเท่าของพื้นที่พูลแรกที่เราสร้างขึ้นจากอุปกรณ์บล็อกเดียวที่มีหน่วยความจำ 10GB
สร้างระบบไฟล์จากพูล
เมื่อสร้างระบบไฟล์ของคุณแล้ว คุณสามารถสร้างระบบไฟล์จากพูลใดพูลหนึ่งได้โดยใช้ไวยากรณ์
stratis fs create <poolname> <filesystemname>
ตัวอย่างเช่น หากต้องการสร้าง filesystem-1 และ filesystem-2 จาก my_pool_1 และ my_pool_2 ให้รันคำสั่งตามลำดับ:
stratis fs create my_pool_1 filesystem-1
stratis fs create my_pool_2 filesystem-2
หากต้องการดูระบบไฟล์ที่สร้างขึ้นใหม่ ให้รันคำสั่ง
stratis fs list
หากต้องการจำกัดผลลัพธ์ของระบบไฟล์ให้เหลือเพียงหนึ่งพูล ให้รันคำสั่ง:
stratis fs list <poolname>
ตัวอย่างเช่น หากต้องการตรวจสอบระบบไฟล์ใน my_pool_2 ให้รันคำสั่ง
stratis fs list my_pool_2
ในตอนนี้ หากคุณรันคำสั่ง lsblk ผลลัพธ์ควรจะค่อนข้างคล้ายกับเอาต์พุตตัวอย่างด้านล่าง
lsblk
การติดตั้งระบบไฟล์ Stratis
ตอนนี้เรากำลังจะเมานต์ระบบไฟล์ที่มีอยู่เพื่อเข้าถึงมัน ขั้นแรก สร้างจุดเชื่อมต่อ
สำหรับระบบไฟล์ในพูลแรก ให้รันคำสั่ง:
mkdir /data
mount /stratis/my_pool_1/filesystem-1 /data
สำหรับระบบไฟล์ที่สองในพูลที่สอง ให้รันคำสั่ง
mkdir /block
mount /stratis/my_pool_2/filesystem-2 /block
หากต้องการตรวจสอบการมีอยู่ของจุดเชื่อมต่อปัจจุบันให้รันคำสั่ง df:
df -Th | grep stratis
สมบูรณ์แบบ! เราจะเห็นได้ชัดเจนว่ามีจุดเมานท์ของเราอยู่
ติดตั้งระบบไฟล์ Stratis อย่างต่อเนื่อง
จุดต่อเชื่อมที่เราเพิ่งสร้างขึ้นไม่สามารถรีบูตได้ หากต้องการทำให้คงอยู่ถาวร ขั้นแรกให้รับ UUID ของแต่ละระบบไฟล์:
blkid -p /stratis/my_pool_1/filesystem-1
blkid -p /stratis/my_pool_2/filesystem-2
ตอนนี้ดำเนินการต่อและคัดลอกตัวเลือก UUID และจุดเมานท์ไปที่ /etc/fstab ดังที่แสดง
echo "UUID=c632dcf5-3e23-46c8-82b6-b06a4cc9d6a7 /data xfs defaults 0 0" | sudo tee -a /etc/fstab
echo "UUID=b485ce80-be18-4a06-8631-925132bbfd78 /block xfs defaults 0 0" | sudo tee -a /etc/fstab
เพื่อให้ระบบลงทะเบียนการกำหนดค่าใหม่ให้รันคำสั่ง:
systemctl daemon-reload
หากต้องการตรวจสอบว่าการกำหนดค่าทำงานตามที่คาดไว้ ให้ติดตั้งระบบไฟล์
mount /data
mount /block
การลบระบบไฟล์ Stratis
หากต้องการลบระบบไฟล์ ก่อนอื่นคุณต้องถอนการเชื่อมต่อระบบไฟล์ดังที่แสดง
umount /mount-point
ในกรณีนี้เราก็จะได้.
umount /data
หากต้องการทำลายระบบไฟล์ ให้ใช้ไวยากรณ์:
stratis filesystem destroy <poolname> <filesystem-name>
ดังนั้นเราจะมี:
stratis filesystem destroy my_pool_1 filesystem-1
เพื่อยืนยันการลบระบบไฟล์ออกให้ใช้คำสั่ง
stratis filesystem list my_pool_1
จากผลลัพธ์ เราจะเห็นได้อย่างชัดเจนว่าระบบไฟล์ที่เกี่ยวข้องกับ my_pool_1 ถูกลบไปแล้ว
การเพิ่มดิสก์ลงใน Stratis Pool ที่มีอยู่
คุณสามารถเพิ่มดิสก์ลงในพูลที่มีอยู่ได้โดยใช้คำสั่ง:
stratis pool add-data <poolname> /<devicepath>
ตัวอย่างเช่น หากต้องการเพิ่มดิสก์เพิ่มเติม /dev/xvdf
ใน my_pool_1 ให้รันคำสั่ง:
stratis pool add-data my_pool_1 /dev/xvdf
โปรดสังเกตว่าขนาดของ my_pool_1 มีขนาดเป็นสองเท่าหลังจากเพิ่มระดับเสียงพิเศษ
สร้างสแนปชอต Stratis
สแน็ปช็อตคือการอ่านและเขียนสำเนาของระบบไฟล์ที่จัดเตรียมไว้อย่างบาง ณ เวลาที่กำหนด
หากต้องการสร้างสแน็ปช็อต ให้รันคำสั่ง:
stratis fs snapshot <poolname> <fsname> <snapshotname>
ในกรณีนี้ คำสั่งจะเป็นดังนี้:
stratis fs snapshot my_pool_2 filesystem-2 mysnapshot
คุณสามารถผนวกแอตทริบิวต์ข้อมูล -$ (date +%Y-%m-%d)
เข้ากับสแน็ปช็อต เพิ่มแท็กวันที่ตามที่แสดงในภาพหน้าจอด้านล่าง
หากต้องการตรวจสอบการสร้างสแน็ปช็อต ให้รันคำสั่ง:
stratis filesystem list <poolname>
ในกรณีนี้ คำสั่งจะเป็นดังนี้:
stratis filesystem list my_pool_2
การย้อนกลับไปยัง Snapshot ก่อนหน้าโดยใช้ระบบไฟล์
หากต้องการเปลี่ยนระบบไฟล์ Stratis กลับเป็นสแน็ปช็อตที่สร้างไว้ก่อนหน้านี้ ขั้นแรก ให้ถอนการเชื่อมต่อและทำลายระบบไฟล์ดั้งเดิม
umount /stratis/<poolname>/filesystem
ในสถานการณ์ของเรา นี่จะเป็น
umount /stratis/my_pool_2/filesystem-2
จากนั้นสร้างสำเนาของสแน็ปช็อตโดยใช้ระบบไฟล์ดั้งเดิม:
stratis filesystem snapshot <poolname> filesystem-snapshot filesystem
คำสั่งจะเป็น:
stratis filesystem snapshot my_pool_2 mysnapshot-2019-10-24 block
ขั้นสุดท้าย ติดตั้งสแน็ปช็อต
mount /stratis/my-pool/my-fs mount-point
การลบ Stratis Snapshot
หากต้องการลบสแนปชอต ขั้นแรกให้ยกเลิกการต่อเชื่อมสแนปชอต
unmount /stratis/my_pool_2/mysnapshot-2019-10-24
จากนั้น ดำเนินการและทำลายสแน็ปช็อต:
stratis filesystem destroy my_pool_2 mysnapshot-2019-10-24
การถอด Stratis Pool
หากต้องการลบพูล Stratis ให้ทำตามขั้นตอนง่าย ๆ ด้านล่าง
1. แสดงรายการระบบไฟล์ที่มีอยู่ในพูล
stratis filesystem list <poolname>
2. ถัดไป ถอนติดตั้งระบบไฟล์ทั้งหมดในพูล
umount /stratis//filesystem-1
umount /stratis//filesystem-2
umount /stratis//filesystem-3
3. ทำลายระบบไฟล์
stratis filesystem destroy <poolname> fs-1 fs-2
4. จากนั้นให้กำจัดสระน้ำ
stratis pool destroy poolname
ในกรณีนี้ไวยากรณ์จะเป็น
stratis pool destroy my_pool_2
คุณสามารถตรวจสอบรายชื่อพูลได้อีกครั้ง
stratis pool list
สุดท้าย ลบรายการใน /etc/fstab สำหรับระบบไฟล์
เรามาถึงจุดสิ้นสุดของคำแนะนำแล้ว ในบทช่วยสอนนี้ เราให้ความกระจ่างเกี่ยวกับวิธีที่คุณสามารถติดตั้งและใช้ Stratis เพื่อจัดการพื้นที่จัดเก็บภายในแบบเลเยอร์บน RHEL เราหวังว่าคุณจะพบว่ามีประโยชน์ ให้มันยิงและแจ้งให้เราทราบว่ามันไปอย่างไร