สำรองข้อมูลคอนเทนเนอร์หรือไฟล์ข้างใน? ตัดสินจากรูปแบบการกู้คืน
การสำรองระดับอิมเมจและระดับไฟล์กู้คืนสิ่งที่ต่างกันและพึ่งพากุญแจที่ต่างกัน จับคู่วัตถุที่เก็บไว้กับการกู้คืนที่คุณต้องการจริง ๆ
คุณสามารถสำรองคอนเทนเนอร์ที่เข้ารหัสเป็นวัตถุชิ้นเดียว หรือเมานต์มันแล้วสำรองไฟล์ข้างใน ทั้งสองอย่างผ่าน VPN ได้อย่างราบรื่น และนั่นคือจุดที่ความคล้ายคลึงสิ้นสุดลง ทั้งสองกู้คืนสิ่งที่ต่างกัน พึ่งพากุญแจที่ต่างกัน ใช้พื้นที่ต่างกัน และล้มเหลวต่างกันเมื่อมีคนต้องการข้อมูลกลับมา เลือกวัตถุที่จะกู้คืนก่อน จากนั้นจึงเลือกการขนส่ง แล้วจึงเลือกการเข้ารหัสของสำเนาที่เก็บไว้ รายการตรวจสอบด้านล่างเรียงตามลำดับนั้น เพราะข้อโต้แย้งเกือบทุกเรื่องเกี่ยวกับการสำรองข้อมูลจริง ๆ แล้วคือความเห็นต่างว่าการตัดสินใจสามข้อนี้ข้อใดถูกทำก่อน
สองวัตถุ สองรูปแบบการกู้คืน
การสำรองระดับอิมเมจกู้คืนคอนเทนเนอร์ คุณจะได้วอลุ่มที่เข้ารหัสกลับมาและยังต้องใช้สื่อการกู้คืนของมันเพื่อเปิด การสำรองระดับไฟล์กู้คืนไฟล์และโครงสร้างไดเรกทอรี และการเข้ารหัสใด ๆ ที่ปกป้องไฟล์เหล่านั้นเป็นคุณสมบัติของคลังสำรอง ไม่ใช่ของคอนเทนเนอร์เดิม การคัดลอกธรรมดาไปยังโฟลเดอร์ระยะไกลเป็นกรณีที่สาม และมันสืบทอดการป้องกันที่โฟลเดอร์นั้นบังเอิญมีอยู่
| Object | What a restore gives you | Where the encryption question lands |
|---|---|---|
| Encrypted container image | The volume, still locked | The container format and its recovery key material |
| Mounted files into a backup tool | Selected files and metadata | The backup repositorys own keys and design |
| Plain copy to a remote folder | Whatever the copy process kept | Whatever protects that storage afterwards |
แถวกลางคือแถวที่คนอ่านผิด มันอาจเป็นการออกแบบที่ดีทีเดียว โปรแกรมสำรองอ่านข้อความธรรมดาในเครื่องและเขียนคลังที่เข้ารหัสและตรวจสอบยืนยันแล้ว ความปลอดภัยจึงขึ้นอยู่กับโปรแกรมนั้นและข้อมูลรับรองของมัน ไม่ใช่รหัสผ่านของคอนเทนเนอร์เดิม และไม่ควรอธิบายสองสิ่งนี้ราวกับเป็นมาตรการเดียวกัน
การตรวจ 1: การกู้คืนต้องสร้างอะไรขึ้นใหม่
ตั้งคำถามในรูปแบบของการกู้คืน ไม่ใช่การสำรอง ถ้าข้อกำหนดคือ “นำบริการนี้กลับไปบนโฮสต์อื่น” อิมเมจพร้อมสื่อการกู้คืนคือคำตอบที่สอดคล้อง ถ้าข้อกำหนดคือ “เอาสเปรดชีตการเงินของเดือนมีนาคมกลับมา” การกู้คืนอิมเมจหลายกิกะไบต์เพียงเพื่อดึงไฟล์เดียวออกมาคือคำตอบที่แพง ทั้งสองเป็นการกู้คืนที่ชอบด้วยเหตุผล และไม่ใช่ бюджетที่แลกเปลี่ยนกันได้ แผนที่ระบุเพียงอย่างใดอย่างหนึ่งจะถูกทดสอบด้วยอีกอย่างในที่สุด
เขียนเป้าหมายการกู้คืนลงในแผน ทั้งวอลุ่ม โครงสร้างไดเรกทอรี หรือไฟล์เดี่ยว ๆ จากนั้นบันทึกว่าเมทาดาทาใดต้องเดินทางไปด้วย เพราะความเป็นเจ้าของ สิทธิ์ แอตทริบิวต์ขยาย และการประทับเวลาล้วนเป็นส่วนหนึ่งของการกู้คืนระดับไฟล์ และมักหายไปในกระบวนการที่อิงการคัดลอกซึ่งดูเหมือนเพียงพอเมื่อทดสอบ
ตัดสินใจด้วยว่าใครเป็นคนกู้คืน คลังระดับไฟล์ที่ผู้ปฏิบัติงานคนใดก็เมานต์ได้เป็นรูปแบบการเข้าถึงที่ต่างจากอิมเมจซึ่งต้องมีผู้ถือกุญแจอยู่ด้วย และไม่มีแบบใดดีกว่าโดยอัตโนมัติ สิ่งที่สำคัญคือการเลือกนั้นตั้งใจและถูกเขียนไว้
การตรวจ 2: อะไรปกป้องสำเนาที่เก็บไว้
VPN ปกป้องช่วงการขนส่งเท่านั้น ไม่ได้บอกอะไรเกี่ยวกับสำเนาที่เก็บไว้เมื่อการถ่ายโอนจบลง และ “มันผ่านอุโมงค์ไปแล้ว” ไม่ใช่ข้อความเกี่ยวกับความสามารถของผู้ดูแลการสำรองในการอ่านข้อมูลของคุณ ถ้าฝั่งไกลดำเนินการโดยคนอื่น คำถามคือพวกเขาอ่านอะไรได้ ไม่ใช่การเชื่อมต่อถูกเข้ารหัสหรือไม่
สำหรับอิมเมจ นั่นหมายถึงการปกป้องวัสดุกุญแจของคอนเทนเนอร์แยกจากตัวอิมเมจ การสูญเสียส่วนหัวคือการสูญเสียวอลุ่ม ดังนั้นสำรองส่วนหัวไว้ที่ที่ไม่มีอิมเมจ:
cryptsetup luksHeaderBackup /dev/vg0/data --header-backup-file data-header.img
cryptsetup luksDump /dev/vg0/data | head -20
สำหรับคลังระดับไฟล์ ตรวจสอบว่าเครื่องมือเข้ารหัสและตรวจสอบยืนยันเนื้อหาและเมทาดาทาก่อนออกจากโฮสต์ และค้นหาว่าใครถือกุญแจ เอกสารการออกแบบ ของ Restic ระบุชัดเจนว่าสมมติว่าโฮสต์ต้นทางน่าเชื่อถือ และการเข้ารหัสไม่ได้ป้องกันผู้ที่มีสิทธิ์เข้าถึงที่เก็บข้อมูลจากการลบข้อมูลสำรอง ข้อแม้ทั้งสองสำคัญ คลังอาจเป็นความลับและยังถูกทำลายได้
การตรวจ 3: สำเนาสอดคล้องกันหรือไม่
การสำรองที่บันทึกไฟล์ระบบที่กำลังเปลี่ยนแปลงคือสำเนา ไม่ใช่จุดกู้คืน สำหรับอิมเมจ ให้ใช้วิธีที่เครื่องมือจัดการวอลุ่มรองรับเพื่อให้ได้สแนปช็อตที่คงที่ ซึ่งโดยปกติหมายถึงการดำเนินการสแนปช็อตหรือการถอดเมานต์ ไม่ใช่การอ่านไฟล์ขนาดใหญ่ขณะที่มันเปลี่ยน:
lvcreate -L 5G -s -n data-snap /dev/vg0/data
cryptsetup open /dev/vg0/data-snap data-snap --readonly
สำหรับไฟล์ที่เมานต์ไว้ ให้ใช้ขั้นตอนความสอดคล้องที่แอปพลิเคชันรองรับสำหรับฐานข้อมูลที่ทำงานอยู่และข้อมูลอื่นที่ประสานกัน สำเนาระดับไฟล์ระบบและจุดกู้คืนที่สอดคล้องกับแอปพลิเคชันเป็นคำอธิบายที่ต่างกัน และความแตกต่างจะเห็นได้ก็ต่อเมื่อคุณพยายามเริ่มแอปพลิเคชันจากสำเนาที่กู้คืนมา
เก็บสื่อการกู้คืนไว้บนเส้นทางที่ได้รับการป้องกันแยกต่างหาก การสูญเสียเครื่องเดิมไม่ควรหมายถึงการสูญเสียข้อมูลรับรองเดียวที่เปิดการสำรองของมัน และนั่นคือสิ่งที่เกิดขึ้นเมื่อไฟล์กุญแจอาศัยอยู่บนวอลุ่มที่กำลังสำรองอยู่ ทดสอบการแยกนั้นอย่างตั้งใจ: กู้คืนบนโฮสต์ที่ไม่เคยเห็นต้นฉบับ โดยใช้เฉพาะสิ่งที่แผนบอกว่ามีอยู่
การตรวจ 4: การตรวจจับการเปลี่ยนแปลงใช้ได้กับวัตถุนี้หรือไม่
คอนเทนเนอร์ที่เข้ารหัสดูเหมือนไฟล์ทึบขนาดใหญ่หนึ่งไฟล์สำหรับเครื่องมือถ่ายโอนส่วนใหญ่ การแก้ไขข้อความธรรมดาเล็กน้อยจึงอาจทำให้อ่านซ้ำจำนวนมากหรืออัปโหลดใหม่ทั้งหมด ขึ้นอยู่กับเครื่องมือและรูปแบบ การแบ่งเป็นชิ้นขนาดแปรผันและการขจัดข้อมูลซ้ำซ้อนตามที่ restic เอกสารไว้สามารถลดได้ แต่นั่นเป็นคุณสมบัติของเครื่องมือนั้น ไม่ใช่ของคุณสมบัติของคอนเทนเนอร์ที่เข้ารหัสโดยทั่วไป
วัดแทนการสันนิษฐาน เปรียบเทียบการรันครั้งแรกกับการรันครั้งที่สองหลังการเปลี่ยนแปลงเล็กน้อยที่ไม่เป็นอันตราย และบันทึกไบต์ที่ถ่ายโอนกับเวลาที่ผ่านไป เก็บสำเนาที่รู้ว่าดีไว้ระหว่างการทดลอง เพื่อให้การทดสอบไม่กินจุดกู้คืนเดียวของคุณ
จากนั้นปิดท้ายรายการด้วยการทดสอบเดียวที่มีความหมาย: กู้คืนโดยไม่มีเครื่องเดิม เปิดคอนเทนเนอร์ที่กู้คืนมา หรือกู้คืนไฟล์ที่เลือกพร้อมเมทาดาทาของมัน และยืนยันว่าแอปพลิเคชันหรือผู้ใช้สามารถใช้ผลลัพธ์ได้ การถ่ายโอนที่รวดเร็วและเข้ารหัสดีแต่ตอบการทดสอบนั้นไม่ได้คือสำเนาข้อมูลของคุณ ไม่ใช่การสำรองข้อมูล