محرك بحث مستقل لخوادم VPS مصنفة حسب السعر

لم يتم العثور على خدمات مطابقة

تثبيت 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 آخر أو جهاز كمبيوتر منزلي به مساحة كافية لتخزين البيانات الاحتياطية، قم بتشغيل الأمر التالي من داخل ذلك الكمبيوتر:
# rsync -aqrxz root@target:/ backup.d
حيث target هو اسم المضيف لـ VPS الذي يتم تحويله. سيؤدي هذا إلى نسخ نظام الملفات الجذر بالكامل عبر SSH إلى جهاز النسخ الاحتياطي، وسيكون استعادة هذا النسخ الاحتياطي على VPS الهدف لاحقًا مباشرًا. إذا كنت بحاجة إلى ضغط النسخ الاحتياطي بسبب نقص المساحة، يمكنك بدلاً من ذلك إنشاء أرشيف مضغوط بتنسيق TGZ:
# ssh root@target "tar -cf - --acls --xattrs --one-file-system --absolute-names /" | gzip -1 >backup.tgz
ومع ذلك، عند استعادة نظام ملفات جذر من أرشيف TAR، سيكون من الضروري إعادة إنشاء جميع الروابط الرمزية التي تحتوي على أهداف بأسماء مسارات مطلقة، لأن TAR يحول أهدافها إلى أسماء مسارات نسبية، لذا فإن استخدام rsync هو البديل الأبسط. سيتم لاحقًا توضيح كيفية استعادة أرشيف TAR بشكل صحيح.
الخطوة 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
يحتوي هذا الخادم الافتراضي الخاص (VPS) على قسم تبادل (swap) بحجم 2GB في /dev/vda2 وهو كبير بما يكفي لتخزين ملف ISO. قم بإنشاء نظام الملفات EXT4، ووصله، وقم بتنزيل ملف ISO عليه:
# swapoff /dev/vda2     # تعطيل قسم التبادل
# mkfs.ext4 /dev/vda2   # إنشاء نظام الملفات EXT4
# mount /dev/vda2 /mnt  # توصيل المساحة المستعادة
# mkdir /mnt/images/
# wget -O /mnt/images/image_file.iso <image_URL>
ثم قم بتوجيه GRUB2 للتمهيد من هذا الملف ISO؛ قم بتحرير /etc/grub.d/40_custom كما يلي:
#!/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
عند إعادة تشغيل الـVPS، ستوفر قائمة GRUB2 خيار التمهيد من الصورة الحية. تابع من هناك باستخدام وحدة التحكم الإنقاذ VNC المقدمة من لوحة تحكم المزود.
الخطوة 3: تثبيت ZFS على بيئة نظام التشغيل الحية
قم بتمهيد صورة نظام التشغيل الحية وادخل إلى طرفيتها. ثم قم بتثبيت حزم ZFS على بيئة نظام التشغيل الحية:
# echo deb http://deb.debian.org/debian stretch contrib >> /etc/apt/sources.list
# apt update
# apt install zfs-dkms
# modprobe zfs
الآن أصبح لدى نظام التشغيل الحية وحدة نواة ZFS وأدوات ZFS المطلوبة لتنسيق نظام ملفات الجذر لـVPS الخاص بك.
الخطوة 4: تقسيم قرص الـVPS
هناك سيناريوهان بديلان لتقسيم قرص الـVPS:
  1. إذا قمت بتخزين ISO الحية في /dev/vda2، فلا يمكنك تعديل هذا القسم الآن لأن النظام الحي يعتمد عليه، ولن يتم إجراء أي تقسيم على الإطلاق لقرص الـVPS. سيتم تنسيق ZFS على القسم الموجود /dev/vda2، وسيبقى /dev/vda1 كما هو وسيتم لاحقًا إعادة استخدامه كقسم تمهيد دائم لتخزين النواة وinitrd. انتقل إلى الخطوة 5 .
  2. إذا لم يكن بيئة العمل الحية الخاصة بك تعتمد على ملف 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
    قم بإنشاء قسم أساسي للإقلاع بعرض 100 ميجابايت وحدده كقابل للإقلاع باستخدام علامة النجمة (*)، مع معرف قسم = 83 (لينكس). سيتم تنسيقه كـ EXT4 لتوافقه مع GRUB2، وسيحتوي على بيانات الإقلاع. ثم قم بإنشاء قسم أساسي آخر لـ ZFS، مع معرف = bf (سولاريس). اكتب التغييرات على القرص وأغلق fdisk. الآن بعد أن تم تقسيم القرص بشكل صحيح، يمكنك تنسيق قسم الإقلاع:
    # 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
يُوصى بهذه المجموعة من الخيارات في وثائق ZFS لتحقيق أعلى توافق مع أحدث الأقراص والأقراص المستقبلية. الخيار compression=zstd يُفعّل خوارزمية الضغط ZSTD التي تتمتع بنسبة ضغط أعلى من الخوارزمية الافتراضية LZ4، على الرغم من أنه يمكنك استخدام compression=lz4 لتقليل استخدام وحدة المعالجة المركزية إذا كان خادم VPS الخاص بك يعاني من معدل عالٍ من عمليات الإدخال/الإخراج على القرص. يتم تسمية المجمع باسم rpool وهو الاسم الأكثر شيوعًا للمجمعات الجذرية. عند اكتمال هذا الأمر، سيتم تركيب rpool على دليل /mnt في البيئة الحية، كما هو محدد في الخيار -R /mnt أعلاه، ولكن سيتم تركيبها تلقائيًا على / في كل عملية إقلاع لاحقة. من الضروري تركيبها على /mnt لاستعادة النسخة الاحتياطية عليها من البيئة الحية.
الخطوة 6: استعادة النسخة الاحتياطية إلى نظام الملفات الجذر الجديد ZFS
قم بتثبيت خادم OpenSSH على البيئة الحية لاستقبال بيانات النسخة الاحتياطية من خادم VPS الاحتياطي:
# apt install openssh-server
للتبسيط، قم بتمكين PermitRootLogin yes في ملف /etc/ssh/sshd_config في البيئة الحية، ثم قم بتعيين كلمة مرور آمنة للمستخدم root وأعد تشغيل OpenSSH:
# passwd
# service restart ssh
وابدأ استعادة بيانات النسخ الاحتياطي من خادوم VPS الاحتياطي، والتي ستقوم بملء تجمع ZFS الجذر المثبت على /mnt:
## من خادوم VPS الاحتياطي
# rsync -arxz backup.d/* root@target:/mnt/
أو إذا كنت قد استخدمت TAR لإنشاء أرشيف نسخ احتياطي، قم باستعادته باستخدام:
## من خادوم VPS الاحتياطي
# cat backup.tgz | ssh root@target "tar -C /mnt -zaxf -"
ومع ذلك، كما كتبت في الخطوة 1، عند الاستخراج، يقوم TAR بتحويل المسار الهدف للروابط الرمزية المطلقة إلى مسارات نسبية؛ يمكن استعادة جميع هذه الروابط الرمزية بشكل صحيح كما يلي. لاحظ أن هذه الاستعادة ليست ضرورية إذا لم تكن قد استخدمت TAR لنسخ نظام الملفات الجذر احتياطيًا. من خادوم VPS الاحتياطي، قم بإدراج جميع الروابط الرمزية الموجودة في الأرشيف:
## من خادوم VPS الاحتياطي
# tar -tvf backup.tgz | egrep -- '->' >list_of_symlinks.txt
ثم انسخ القائمة إلى الخادوم الظاهري الهدف في /mnt، والذي يحتوي الآن على نظام الملفات الجذر الذي تم إعادة تعبئته من النسخة الاحتياطية:
## من الخادوم الظاهري للنسخة الاحتياطية
# scp list_of_symlinks.txt root@target:/mnt/root/
من الخادوم الظاهري الهدف، chroot إلى /mnt وقم بتنفيذ سكريبت Bash هذا لاستعادة جميع الروابط الرمزية المطلقة:
## من بيئة 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
يمكنك اختيار نسخ أي محتوى موجود مسبقًا من /mnt/boot/ إلى قسم التمهيد الجديد. ادخل إلى بيئة chroot في مجموعة الجذر، ومن داخلها، قم بتثبيت خطاف ZFS initramfs، ووحدة نواة ZFS، وأدوات مساحة المستخدم الخاصة بـ ZFS المطلوبة لإنشاء initrd:
# chroot /mnt
# apt install pkg-dev linux-headers-amd64 linux-image-amd64
# apt install zfs-dkms zfs-initramfs
ثم قم بتثبيت حزمة GRUB2:
# apt install grub-pc
# update-initramfs -u -k all
قم بتحرير /etc/default/grub لتعيين مجموعة ZFS كجهاز الجذر، عن طريق تعديل المتغير GRUB_CMDLINE_LINUX:
## هذا هو /etc/default/grub
GRUB_CMDLINE_LINUX="root=ZFS=rpool"
ثم قم بتطبيق التكوين:
# update-grub
وأخيرًا قم بتثبيت GRUB2 على MBR:
# 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
يمكنك الآن إزالة صورة ISO من لوحة تحكم VPS، إذا كنت قد استخدمت هذا الخيار، أو حذف ISO من القرص الصلب، وإعادة تشغيل النظام في مجموعة ZFS الجذرية:
# reboot
اكتمل تحويل نظام ملفات الجذر لـ VPS من EXT4 إلى ZFS، وسيتم تشغيل VPS في نظامك المثبت القديم كالمعتاد.

اقرأ المزيد من المقالات
إندونيسي الألمانية الإسبانية الإنجليزية البرتغالية التركية الروسية الفرنسية الفلبينية الكورية اليابانية بنغالي بولندي صيني عربي فيتنامية مالاي
مساعدة  –  فهرس  –  سياسة الخصوصية  –  اتصل بنا  –