เมื่อเร็วๆ นี้เรามีโอกาสทำงานร่วมกับทีม Cohesity เพื่อตรวจสอบการผสานรวมระหว่าง Helios และ Redis Enterprise ซึ่งเป็นขั้นตอนในการเริ่มต้นใช้งานโปรแกรมพันธมิตรด้านเทคนิคของ Redis Cohesity SmartFiles เป็นบริการที่ทำงานบน Helios ให้มุมมองเดียวและการจัดการข้อมูลที่ไม่มีโครงสร้างทั่วโลก ไม่ว่าข้อมูลจะอยู่ที่ใด ในบริบทของ Redis Enterprise SmartFiles จะแสดงภาพรวมของฐานข้อมูลในมุมมองเดียว
ทำไมเราถึงต้องกังวลกับการคงอยู่และการสำรองข้อมูล? เป็นความจริง:หาก Redis ถูกใช้เป็นแคชและสามารถนำกลับมาใช้ใหม่ได้จากฐานข้อมูลแบ็กเอนด์โดยมีผลกระทบต่อระบบน้อยที่สุด ก็ไม่มีความจำเป็นเช่นกัน ในทางกลับกัน ให้พิจารณาว่าเมื่อใดที่ Redis ถูกใช้เป็นฐานข้อมูลการดำเนินงานเพื่อให้สามารถเข้าถึงข้อมูลที่ช้าได้อย่างรวดเร็ว (เช่น ประวัติการทำธุรกรรม จำนวนสินค้าคงคลัง การค้นหาลูกค้า) ฐานข้อมูล Redis จำเป็นต้องกู้คืนอย่างรวดเร็วจากปัญหาฮาร์ดแวร์หรือแม้แต่การเฟลโอเวอร์ไปยังศูนย์ข้อมูลอื่น
ความคงอยู่
ข้อมูลทั้งหมดในฐานข้อมูล Redis ถูกจัดเก็บและจัดการเฉพาะใน RAM หรือ RAM + Flash Memory (Redis on Flash); มีความเสี่ยงที่จะสูญหายจากกระบวนการหรือความล้มเหลวของเซิร์ฟเวอร์ มีกลยุทธ์หลายอย่างที่สามารถปฏิบัติตามเพื่อลดความเสี่ยงนี้:ฐานข้อมูล High Availability (HA) ที่มีส่วนแบ่งข้อมูลหลักและรอง ฐานข้อมูล Active-Active ที่กระจายตามพื้นที่ และการคงอยู่ของดิสก์ จากมุมมองด้านประสิทธิภาพ มักจะต้องการเปลี่ยนระบบจากชาร์ดฐานข้อมูลหลักไปเป็นชาร์ดฐานข้อมูลรองที่ซิงโครไนซ์ และนี่คือวิธีการทำงานของ Redis Enterprise เฉพาะเมื่อชาร์ดหลักและรองหายไปเท่านั้นคือฐานข้อมูลที่กู้คืนจากดิสก์ ในทำนองเดียวกัน ในกรณีของดาต้าเซ็นเตอร์ล้มเหลว การเฟลโอเวอร์ไปยังฐานข้อมูลแอกทีฟแอกทีฟที่ซิงโครไนซ์ในศูนย์ข้อมูลอื่นจะเร็วกว่าการกู้คืนจากดิสก์
สำหรับคำถามเรื่องการคงอยู่ Redis รองรับไฟล์ต่อท้ายเท่านั้น (AOF) เพื่อความทนทานที่ดีขึ้น แม้ว่าจะต้องใช้ทรัพยากรมากขึ้นและสแน็ปช็อต (RDB) ซึ่งทนทานน้อยกว่าในขณะที่ใช้ทรัพยากรน้อยลง เช่นเดียวกับทุกสิ่ง มีข้อแลกเปลี่ยนที่สามารถสำรวจเพิ่มเติมได้ในเอกสารประกอบของ Redis Enterprise สำหรับวัตถุประสงค์ของบทความนี้ เราจะถือว่าเราต้องการ AOF เพื่อความทนทานที่ดีขึ้น
สำรองข้อมูล
Redis Enterprise อาศัยการคงอยู่สำหรับการกู้คืนเมื่อทั้งชาร์ดฐานข้อมูลหลักและรองหายไป หากไม่ได้ใช้แอ็คทีฟแอ็คทีฟและชั้นวางที่มีฐานข้อมูลพร้อมกับที่เก็บข้อมูลที่แนบมาหายไป เราจะเหลือการกู้คืนจากข้อมูลสำรอง ในกรณีของ Redis Enterprise การสำรองข้อมูลจะเป็นสแน็ปช็อตเสมอ ซึ่งเมื่อใช้ร่วมกับ AOF เพื่อความคงอยู่ จะสร้างแพลตฟอร์มข้อมูลที่ยืดหยุ่นและทนทาน
นี่คือที่มาของ Cohesity SmartFiles Redis Enterprise ใช้จุดปลายที่เข้ากันได้กับ S3 ที่ SmartFiles จัดเตรียมไว้ให้สำหรับการสำรองข้อมูลที่มีการจัดการทั่วทั้งคลาวด์ ในการตั้งค่านี้ เราใช้ Redis Enterprise REST API โดยมีสมมติฐานดังต่อไปนี้:
- $USER และ $PASS ถูกกำหนดเป็นชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบ Redis Enterprise ตามลำดับ
- $ACCESS_KEY และ $SECRET_KEY ได้รับการตั้งค่าคีย์การเข้าถึงที่เก็บอ็อบเจ็กต์ S3 และคีย์ลับตามลำดับ
เปิดใช้งานการคงอยู่ของฐานข้อมูล
curl -s -k -u $USER:$PASS -H content-type:application/json -XPUT https://localhost:9443/v1/bdbs/1 -d '{"data_persistence": "aof"}'
กำหนดคอนฟิกคลัสเตอร์เพื่อใช้ที่เก็บอ็อบเจ็กต์ S3 โดยการตั้งค่า S3 URL โปรดทราบว่าชื่อที่ฝากข้อมูลไม่รวมอยู่ใน S3 URL
curl -s -k -u $USER:$PASS -H content-type:application/json -X PUT https://localhost:9443/v1/cluster -d '{"s3_url": '\"$S3_IP\"'}'
กำหนดค่าการสำรองข้อมูลคลัสเตอร์ S3 เพื่อความเป็นส่วนตัวเท่านั้น
curl -s -k -u $USER:$PASS -H content-type:application/json -X PUT https://localhost:9443/v1/cluster -d '{"s3_certificate_verification":false}'
ตรวจสอบตำแหน่งสำรอง โปรดทราบว่าคำตอบเดียวสำหรับความสำเร็จคือ HTTP 200 ตกลง
curl -s -k -u $USER:$PASS -H content-type:application/json -X POST https://localhost:9443/v1/bdbs/actions/validate_backup_location -d '{"backup_location": {"type": "s3", "bucket_name": '\"$BUCKET\"', "subdir": "","access_key_id": '\"$ACCESS_KEY\"', "secret_access_key": '\"$SECRET_KEY\"'}}'
สร้างข้อมูลสำรอง โปรดทราบว่าคำตอบเดียวสำหรับความสำเร็จคือ HTTP 200 ตกลง
curl -s -k -u $USER:$PASS -H content-type:application/json -X POST https://localhost:9443/v1/bdbs/1/actions/export -d '{"export_location": {"type": "s3", "bucket_name": '\"$BUCKET\"', "subdir": "", "access_key_id": '\"$ACCESS_KEY\"', "secret_access_key": '\"$SECRET_KEY\"'}}'
กำหนดค่าการสำรองข้อมูลที่เกิดซ้ำทุกๆ 30 นาที โปรดทราบว่าคำตอบเดียวสำหรับความสำเร็จคือ HTTP 200 ตกลง
curl -s -k -u $USER:$PASS -H content-type:application/json -X PUT https://localhost:9443/v1/bdbs/1 -d '{"backup":true, "backup_interval":1800, "backup_interval_offset":360, "backup_location": {"type": "s3", "bucket_name": '\"$BUCKET\"', "subdir": "", "access_key_id": '\"$ACCESS_KEY\"', "secret_access_key": '\"$SECRET_KEY\"'}}'
ความคิดสุดท้าย
ในโลกที่ราบรื่น Redis Enterprise ที่กำหนดค่าด้วย HA และ Active-Active ช่วยให้คุณไม่ต้องกังวลเกี่ยวกับการคงอยู่และการสำรองข้อมูล เราไม่ได้อาศัยอยู่ในโลกที่ราบรื่น และเราต้องการทั้งความคงอยู่และการสำรองข้อมูล (พร้อมกับ HA) เมื่อ Redis คาดว่าจะกู้คืนจากความล้มเหลวของระบบ เป็นเรื่องปกติที่จะเห็นปลายทางสำรอง S3 ตามที่อุปกรณ์นำเสนอจาก Dell EMC, NetApp หรือ Pure Storage โชคดีที่การผสานรวมกับ Cohesity SmartFiles ทำให้ง่ายต่อการใช้งานปลายทางนี้และรวมข้อมูลสำรองไว้ในกลยุทธ์การปฏิบัติงาน