لم يتم العثور على خدمات مطابقة
تثبيت ZFS على الجذر في VPS قيد التشغيل
يشرح هذا الدليل كيفية تثبيت ZFS كنظام ملفات الجذر لـ VPS يحتوي على تثبيت Linux موجود دون التسبب في فقدان البيانات. سيكون لدى VPS قسم تمهيد صغير من نوع EXT4 لـ GRUB2 مع النواة و initrd، وحوض كبير من ZFS مثبت على الجذر مع تمكين الضغط. سيتم إصدار معظم الأوامر من صورة قرص حي وسيتم عرض حل بديل إذا كان VPS لا يدعم تحميل صور ISO.
- الفهرس:
- 1. قم بنسخ البيانات احتياطيًا
- 2. قم بتشغيل صورة نظام تشغيل حي
- 3. قم بتثبيت ZFS على بيئة نظام التشغيل الحي
- 4. قم بتقسيم قرص VPS
- 5. قم بتثبيت ZFS على قرص VPS
- 6. قم باستعادة النسخة الاحتياطية إلى نظام ملفات الجذر الجديد من نوع ZFS
- 7. تثبيت GRUB2
- 8. التمهيد إلى تجميع ZFS الجذر
- الخطوة 1: نسخ البيانات احتياطيًا
-
إذا كان لديك VPS آخر أو جهاز كمبيوتر منزلي به مساحة كافية لتخزين البيانات الاحتياطية، قم بتشغيل الأمر التالي من داخل ذلك الكمبيوتر:
حيث target هو اسم المضيف لـ VPS الذي يتم تحويله. سيؤدي هذا إلى نسخ نظام الملفات الجذر بالكامل عبر SSH إلى جهاز النسخ الاحتياطي، وسيكون استعادة هذا النسخ الاحتياطي على VPS الهدف لاحقًا مباشرًا. إذا كنت بحاجة إلى ضغط النسخ الاحتياطي بسبب نقص المساحة، يمكنك بدلاً من ذلك إنشاء أرشيف مضغوط بتنسيق TGZ:
# rsync -aqrxz root@target:/ backup.d
ومع ذلك، عند استعادة نظام ملفات جذر من أرشيف TAR، سيكون من الضروري إعادة إنشاء جميع الروابط الرمزية التي تحتوي على أهداف بأسماء مسارات مطلقة، لأن TAR يحول أهدافها إلى أسماء مسارات نسبية، لذا فإن استخدام rsync هو البديل الأبسط. سيتم لاحقًا توضيح كيفية استعادة أرشيف TAR بشكل صحيح.# ssh root@target "tar -cf - --acls --xattrs --one-file-system --absolute-names /" | gzip -1 >backup.tgz
- الخطوة 2: تشغيل صورة نظام تشغيل مباشر
-
سيتم التحويل إلى نظام الملفات ZFS من خلال نظام تشغيل مباشر من قرص CD. اعتمادًا على مدى قدرة لوحة تحكم VPS الخاصة بك، قد تكون لديها بالفعل صورة نظام تشغيل مباشر جاهزة للتشغيل. بدلاً من ذلك، يمكنك تنزيل صورة ISO مباشرة من Debian من مرآة Debian وتحميلها إلى لوحة تحكم VPS الخاصة بك، ثم تشغيل ISO من هناك؛ سيعمل هذا بشكل جيد حتى إذا كان VPS الخاص بك يعمل بتوزيعة مختلفة. كن حذرًا لاستخدام صورة ISO نظام تشغيل مباشر، وليس صورة تثبيت، لأن صور التثبيت تفتقر إلى apt وغير قادرة على تثبيت البرامج اللازمة على بيئة التشغيل المباشر. إذا كانت لوحة تحكم VPS الخاصة بك تدعم التشغيل من صورة ISO مقدمة من المستخدم، انتقل إلى الخطوة 3، وإلا يمكنك تشغيل ISO الذي تم تنزيله عن طريق تحويل قسم swap، إذا كان موجودًا، إلى EXT4 وتخزين ISO في مساحة التخزين المستعادة، ثم يمكن تكوين GRUB2 للتشغيل من تلك ISO. يتم ذلك على النحو التالي:
# fdisk --list /dev/vda
القرص /dev/vda: 35 GiB, 37580963840 بايت, 73400320 قطاع
الوحدات: قطاعات من 1 * 512 = 512 بايت
حجم القطاع (منطقي/فيزيائي): 512 بايت / 512 بايت
حجم الإدخال/الإخراج (الحد الأدنى/الأمثل): 512 بايت / 512 بايت
نوع تسمية القرص: dos
معرف القرص: 0x495b5ce4
الجهاز التمهيد البداية النهاية القطاعات الحجم النوع
/dev/vda1 * 2048 69203583 69201536 33G 83 Linux
/dev/vda2 69203584 73397887 4194304 2G 82 Linux swap
# swapoff /dev/vda2 # تعطيل قسم التبادل
# mkfs.ext4 /dev/vda2 # إنشاء نظام الملفات EXT4
# mount /dev/vda2 /mnt # توصيل المساحة المستعادة
# mkdir /mnt/images/
# wget -O /mnt/images/image_file.iso <image_URL>
#!/bin/sh
exec tail -n +3 $0
# يوفر هذا الملف طريقة سهلة لإضافة قوائم مخصصة. ببساطة اكتب
# القوائم التي تريد إضافتها بعد هذا التعليق. كن حذرًا من تغيير
# سطر 'exec tail' أعلاه.
menuentry "Live ISO" {
set ISOFile="/images/image_file.iso"
loopback loop (hd0,2)$ISOFile
linux (loop)/live/vmlinuz boot=live findiso=$ISOFile
initrd (loop)/live/initrd.img
}
update-grub2
- الخطوة 3: تثبيت ZFS على بيئة نظام التشغيل الحية
-
قم بتمهيد صورة نظام التشغيل الحية وادخل إلى طرفيتها. ثم قم بتثبيت حزم ZFS على بيئة نظام التشغيل الحية:
# echo deb http://deb.debian.org/debian stretch contrib >> /etc/apt/sources.list
# apt update
# apt install zfs-dkms
# modprobe zfs
- الخطوة 4: تقسيم قرص الـVPS
-
هناك سيناريوهان بديلان لتقسيم قرص الـVPS:
- إذا قمت بتخزين ISO الحية في /dev/vda2، فلا يمكنك تعديل هذا القسم الآن لأن النظام الحي يعتمد عليه، ولن يتم إجراء أي تقسيم على الإطلاق لقرص الـVPS. سيتم تنسيق ZFS على القسم الموجود /dev/vda2، وسيبقى /dev/vda1 كما هو وسيتم لاحقًا إعادة استخدامه كقسم تمهيد دائم لتخزين النواة وinitrd. انتقل إلى الخطوة 5 .
-
إذا لم يكن بيئة العمل الحية الخاصة بك تعتمد على ملف ISO مخزن على قرص VPS، قم بإعادة تقسيم القرص عن طريق إنشاء قسم تمهيد صغير لـ GRUB2، وقسم كبير لجذر ZFS يمتد على جميع المساحة المتبقية على القرص. نفذ الأمر fdisk لإنشاء القسمين التاليين:
# fdisk /dev/vda
Command (m for help): p
Disk /dev/vda: 35 GiB, 37580963840 bytes, 73400320 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x495b5ce4
Device Boot Start End Sectors Size Id Type
/dev/vda1 2048 69203583 69201536 33G bf Solaris
/dev/vda2 * 69203584 73397887 4194304 2G 83 Linux
# mkfs.ext4 /dev/vda2
- الخطوة 5: تثبيت ZFS على قرص VPS
-
قم بتنسيق /dev/vda1 كوحدة تخزين ZFS:
# zpool create -o ashift=12 \
-O acltype=posixacl -O canmount=on -O compression=zstd \
-O dnodesize=auto -O normalization=formD -O relatime=on -O xattr=sa \
-O mountpoint=/ -R /mnt \
rpool /dev/vda1
- الخطوة 6: استعادة النسخة الاحتياطية إلى نظام الملفات الجذر الجديد ZFS
-
قم بتثبيت خادم OpenSSH على البيئة الحية لاستقبال بيانات النسخة الاحتياطية من خادم VPS الاحتياطي:
# apt install openssh-server
# passwd
# service restart ssh
## من خادوم VPS الاحتياطي
# rsync -arxz backup.d/* root@target:/mnt/
## من خادوم VPS الاحتياطي
# cat backup.tgz | ssh root@target "tar -C /mnt -zaxf -"
## من خادوم VPS الاحتياطي
# tar -tvf backup.tgz | egrep -- '->' >list_of_symlinks.txt
## من الخادوم الظاهري للنسخة الاحتياطية
# scp list_of_symlinks.txt root@target:/mnt/root/
## من بيئة chroot
while read -r row; do
src=$(echo "$row" | grep -Po '(?<=[0-9]{2}:[0-9]{2} )[^ ]+')
tgt=$(echo "$row" | grep -Po '(?<= -> ).+')
echo "linking: $src -> $tgt"
ln -fs "$tgt" "$src"
done </root/list_of_symlinks.txt
- الخطوة 7: تثبيت GRUB2
-
إذا كنت داخل بيئة chroot، اخرج منها وعد إلى البيئة الحية. ثم قم بربط أنظمة الملفات الافتراضية إلى /mnt وقم بتثبيت قسم التمهيد:
# mount --bind /dev /mnt/dev
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
# mount /dev/vda2 /mnt/boot
# chroot /mnt
# apt install pkg-dev linux-headers-amd64 linux-image-amd64
# apt install zfs-dkms zfs-initramfs
# apt install grub-pc
# update-initramfs -u -k all
## هذا هو /etc/default/grub
GRUB_CMDLINE_LINUX="root=ZFS=rpool"
# update-grub
# grub-install /dev/vda
- الخطوة 8: التمهيد إلى مجموعة الجذر ZFS
-
النظام جاهز، تم استعادته بالكامل من النسخة الاحتياطية، ويمكن التمهيد. قم بالخروج من chroot وفك تركيب جميع أنظمة الملفات الافتراضية، ثم قم بتصدير مجموعة الجذر ZFS:
# exit # الخروج من chroot rpool
# umount /mnt/dev
# umount /mnt/proc
# umount /mnt/sys
# umount /mnt/boot
# umount /mnt
# zpool export -a
# reboot
اقرأ المزيد من المقالات