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

วิธีติดตั้ง Stratis เพื่อจัดการที่เก็บข้อมูลในเครื่องแบบเลเยอร์บน RHEL 8


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

  • การจัดเตรียมแบบบาง
  • สแนปชอตระบบไฟล์
  • การจัดระดับ
  • การจัดการแบบพูล
  • การตรวจสอบ

โดยพื้นฐานแล้ว Stratis คือพูลการจัดเก็บข้อมูลที่สร้างขึ้นจากดิสก์ในเครื่องหรือพาร์ติชันดิสก์ตั้งแต่หนึ่งรายการขึ้นไป Stratis ช่วยให้ผู้ดูแลระบบตั้งค่าและจัดการการกำหนดค่าพื้นที่จัดเก็บข้อมูลที่ซับซ้อน

ก่อนที่เราจะดำเนินการต่อ ให้เราดูคำศัพท์ทางเทคนิคบางประการที่คุณจะต้องเผชิญในระหว่างดำเนินการ:

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

อุปกรณ์บล็อกที่คุณสามารถใช้กับ Stratis ได้แก่:

  1. โลจิคัลวอลุ่ม LVM
  2. ลุคส์
  3. SSD (โซลิดสเตตไดรฟ์)
  4. อุปกรณ์ Mapper Multipath
  5. iSCSI
  6. HDD (ฮาร์ดดิสก์ไดรฟ์)
  7. เดรด
  8. อุปกรณ์จัดเก็บข้อมูล 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 เราหวังว่าคุณจะพบว่ามีประโยชน์ ให้มันยิงและแจ้งให้เราทราบว่ามันไปอย่างไร