ما هي اللقطة هنا
نسخة من قرص المثيل في لحظة زمنية معينة، تُلتقط في طبقة التخزين وتُكتب إلى تخزين مختلف عن التخزين الذي يعمل عليه المثيل. تُباع الفتحات في حزم؛ تحتوي الفتحة الواحدة على لقطة واحدة وتُعاد استخدامها عند الكتابة فوقها. لا يؤدي التقاطها إلى إيقاف المثيل مؤقتًا، وتكلفة النسخ عند الكتابة في الدقائق التالية صغيرة بما يكفي بحيث نادرًا ما تظهر في مخطط زمن الاستجابة.
ليست نسخة احتياطية. تعيش اللقطة في نفس الموقع الذي يعيش فيه المثيل، مما يحميك من أخطائك rm وليس من الموقع. النسخ الاحتياطي خارج العقدة هو إضافة منفصلة، مشفرة من جانبك، وتُكتب إلى مدينة مختلفة.
التقاط لقطة
curl -s -X POST https://paragonvps.com/api/v1/instances/<instance-id>/snapshots -H "Authorization: Bearer $Paragon_TOKEN" -H "Content-Type: application/json" -d '{"label":"pre-upgrade"}'curl -s https://paragonvps.com/api/v1/instances/<instance-id>/snapshots -H "Authorization: Bearer $Paragon_TOKEN" | jq -r '.[] | .id + " " + .label + " " + .created'متسقة مع الأعطال، ومتى لا تكون كافية
اللقطة من مثيل قيد التشغيل هي تمامًا ما سيكون عليه القرص بعد انقطاع التيار الكهربائي. تتعافى PostgreSQL و MariaDB وكل نظام ملفات مع دفتر يوميات في صورنا من تلك الحالة عند البدء، لأن التعافي منها هو الغرض منها. الخطر ليس قاعدة البيانات حقًا. بل تطبيقك الخاص، في منتصف كتابة ملفين يجب أن يتطابقا مع بعضهما البعض.
عندما تحتاج إلى خط واضح، قم بتفريغ وتجميد مجلد البيانات للحظة التي يستغرقها الأمر:
sync
fsfreeze -f /srv/data
# take the snapshot here
fsfreeze -u /srv/dataجمّد مجلد البيانات. لا تجمّد / أبدًا. نظام الملفات الجذري المجمد يمنع العملية التي من المفترض أن تزيل التجميد من القيام بأي شيء على الإطلاق، والطريقة للخروج هي إعادة تعيين صلبة.
بالنسبة لقاعدة البيانات، الخيار الأنظف هو التقاط لقطة والسماح للمحرك بالتعافي، ثم التحقق من أنه فعل:
sudo -u postgres pg_isready
journalctl -u postgresql -n 50الاستعادة
توقف الاستعادة المثيل، وتستبدل القرص باللقطة، وتعيد تشغيله. ثوانٍ، وليس دقائق. لا تتغير العناوين، ويظل الDNS العكسي الذي عيّنته كما هو، وكل ما كُتب منذ اللقطة قد اختفى.
وذلك يشمل ما جعلك تقرر الاستعادة. إذا كان هناك أي احتمال أنك تريد قراءة السجلات من الحالة المعطوبة، فالتقط لقطة منها أولاً ثم استعد فوقها.
curl -s -X POST https://paragonvps.com/api/v1/snapshots/<snapshot-id>/restore -H "Authorization: Bearer $Paragon_TOKEN"الجدولة
ظهرت الجداول لكل مثيل مع إصدار المنصة 5.4. يوميًا في ساعة ثابتة مع نافذة منزلقة هو الخيار الشائع: يُحذف الأقدم بمجرد امتلاء الفتحات.
curl -s -X PUT https://paragonvps.com/api/v1/instances/<instance-id>/snapshot-schedule -H "Authorization: Bearer $Paragon_TOKEN" -H "Content-Type: application/json" -d '{"cron":"20 3 * * *","keep":7}'اختر ساعة هادئة لعبء عملك وليس لنا. تكلفة تخزين اللقطة تتناسب مع ما يتغير بعدها، لذا فإن الجدول الذي يعمل أثناء وظيفتك الليلية المجمعة يحتفظ ببيانات أكثر بكثير من الجدول الذي يعمل بعدها بساعة.
إلغاء المثيل يحذف لقطاته
فورًا، دون فترة سماح، لأنها مخزنة مقابل المثيل. أي شيء تريد الاحتفاظ به بعد الإلغاء ينتمي إلى النسخ الاحتياطي خارج العقدة أو إلى مكان ليس نحن على الإطلاق.