สตอเรจแบบถาวรนั้นได้เป็นความท้าทายมาตลอดสำหรับแอปพลิเคชั้นแบบมีการจำสถานะก่อนหน้า (stateful) ที่รันอยู่ในสภาพแวดล้อมแบบคอนเทนเนอร์ เช่น OpenShift ซึ่งต้องบอกว่าการรันแอปในคอนเทนเนอร์นั้นเป็นสิ่งที่ได้รับความนิยมเพิ่มขึ้นเรื่อยๆ เพราะความยืดหยุ่นและการขยายของมัน แต่ด้วยความที่มันเป็นสถานะแบบชั่วคราว (ephemeral) ทำให้ความสูญเสียข้อมูลเมื่อตัวมันเองถูกรีสตาร์ทนั้นเกิดขึ้นได้ง่ายมากกรณีที่ไม่ถูกจัดการเป็นอย่างดี
ระบบสตอเรจในคอนเทนเนอร์นั้นจะเป็นแบบชั่วคราว ทำให้แอปพลิเคชันแบบที่ต้องการความคงอยู่ของข้อมูลเช่น ระบบฐานข้อมูลนั้นจำเป็นที่จะต้องมี สตอเรจแบบถาวรเพื่อเก็บข้อมูลไว้ แต่ก่อนนั้นเป็นไปได้ยากมาก แต่ด้วยการพัฒนาที่เกิดขึ้นตลอดเวลา ทำให้วันนี้ เรามีหลายโซลูชัน สำหรับการเก็บข้อมูล ซึ่งวันนี้เราจะไปดูสิ่งที่เป็นไปได้แล้วใน OpenShift
Block Storage ใน OpenShift
บล็อกสตอเรจนั้นทำหน้าที่เข้าถึงอุปกรณ์เก็บข้อมูลในระดับบล็อก โดยมันทำหน้าที่เหมือนโวลุมที่แยกเป็นอิสระ ซึ่งอาจจะเรียกว่าการทำงานนั้นก็เหมือนไดรว์ซึ่งไม่ต่างจาก physical server ที่จำเป็นจะต้องอาศัยการฟอร์เมต หรือ การเมาท์ ก่อนที่มันจะถูกเข้าถึงได้จากระดับแอปพลิเคชัน
แน่นอนว่าการเข้าถึงบล็อกสตอเรจนั้นมีข้อดีเรื่องความเร็ว ซึ่งเป็นที่ต้องการสำหรับฐานข้อมูล หรือ แอปพลิเคชันที่ต้องการเข้าถึงดิสก์หนัก
OpenShift นั้นสามารถเข้าถึงสตอเรจในระดับบล็อกเพื่อนำมาให้เราใช้งาน ทั้งเพื่อเป็นสตอเรจแบบถาวรและชั่วคราว
การทำความเข้าใจเกี่ยวกับบล็อกสตอเรจแบบถาวรและชั่วคราวใน OpenShift
สตอเรจใน OpenShift นั้นอาจจะแบ่งได้เป็นหมวดย่อยๆ สองตัวคือ ถาวร และ ชั่วคราว โดยแบบชั่วคราวนั้นถูกออกแบบมาสำหรับแอปพลิเคชันแบบไม่มีสถานะ โดยมันจะมีตัวตนอยู่ในขณะที่ พ็อดต้องการใช้งานเท่านั้น เมื่อพ็อดหาย มันก็จะหายไปด้วย
ในขณะที่สตอเรจแบบถาวรนั้นจำเป็นที่จะต้องรักษาข้อมูลไว้ แม้ว่าพ็อดจะไม่มีอยู่แล้วก็ตาม ทั้งนี้เพราะแอปพลิเคชันจำเป็นที่จะต้องใช้งานสตอเรจแบบนี้เช่น ฐาข้อมูล ทั้งนี้ OpenShift จะจัดหาเฟรมเวิร์กในการจัดสรรสตอเรจให้ ผ่านสิ่งที่เรียกว่า PersistentVolume API โดยจะมีสองรูปแบบคือ
แอดมินสามารถที่จะสร้างทรัพยากรสตอเรจดโยการสร้าง PV ในขณะที่นักพัฒนาจะส่งคำขอผ่าน PVC
แล้วเราจะ Provision อย่างไร
OpenShift จะใช้สิ่งที่เรียกว่า Container Storage Interface สำหรับการใช้งานสตอเคจจากแบ็คเอน โดย CSI นั้นจะทำหน้าที่เป็นปลั๊กอินระหว่าง OpenShift และ สตอเรจโปรไวเดอร์ มันจะทำหน้าที่ในการแปลง PV และ PVC ไปยังไดรเวอร์
ก้าวอีกขั้นด้วยการจัดการบล็อกสตอเรจด้วย OpenShift Data Foundation (ODF)
ODF นั้นเป็นสตอเรจโซลูชันจาก RedHat เพื่อให้การจัดการสตอเรจแบบถาวรนั้นง่ายขึ้น โดยเฉพาะในสภาพแวดล้อมแบบ OpenShift โดยมันเป็นโซลูชันที่รวมทั้งสตอเรจแบบ บล็อก ไฟล์ และ อ็อบเจ็กต์เข้าด้วยกัน โดยการจัดการสตอเรจทั้งหมด ทำได้ผ่านระบบเดียว

image cr: RedHat
สถาปัตยกรรมของ OpenShift Data Foundation
ODF นั้นทำงานด้วยสถาปัตยกรรมแบบเปิดโดยมี Ceph, NooBaa และ Rook
แล้วต่อไปเราจะได้พบกับบทความใหม่เกี่ยวกับ OpenShift มากขึ้น สำหรับวันนี้ถือเป็นเรื่องนำสำหรับ Persistent Storage และ ทำไมมันถึงจำเป็นใน containers