fiyata göre sıralanmış VPS'ler için bağımsız bir Arama Motoru

eşleşen hizmet bulunamadı

Çalışan Bir VPS'de Kök Dizine ZFS Kurulumu

Bu rehber, mevcut bir Linux kurulumu içeren bir VPS'de veri kaybına neden olmadan ZFS'nin kök dosya sistemi olarak nasıl kurulacağını açıklamaktadır. VPS, GRUB2 için çekirdek ve initrd ile birlikte küçük bir EXT4 önyükleme bölümüne ve sıkıştırma etkin olarak kök dizine bağlanmış büyük bir ZFS havuzuna sahip olacaktır. Çoğu komut bir live CD görüntüsünden verilecek ve VPS ISO görüntülerini bağlamayı desteklemiyorsa bir çözüm gösterilecektir.

İçindekiler:
1. Verileri yedekleyin
2. Bir live OS görüntüsü ile önyükleme yapın
3. Live OS ortamına ZFS kurun
4. VPS diskini bölümlendirin
5. VPS diskine ZFS kurun
6. Yedeği yeni ZFS kök dosya sistemine geri yükleyin
7. GRUB2'yi Kur
8. ZFS kök havuzuna önyükleme yap
Adım 1: Verileri yedekle
Eğer yedek verileri depolamak için yeterli alana sahip ikinci bir VPS veya ev bilgisayarınız varsa, bu bilgisayardan şu komutu çalıştırın:
# rsync -aqrxz root@target:/ backup.d
Burada target, dönüştürülen VPS'in ana bilgisayar adıdır. Bu komut, kök dosya sisteminin tamamını SSH üzerinden yedek makineye kopyalar ve bu yedeği daha sonra hedef VPS'e geri yüklemek oldukça kolaydır. Eğer yer sıkıntısı nedeniyle yedeği sıkıştırmanız gerekiyorsa, alternatif olarak sıkıştırılmış bir TGZ arşivi oluşturabilirsiniz:
# ssh root@target "tar -cf - --acls --xattrs --one-file-system --absolute-names /" | gzip -1 >backup.tgz
Ancak, bir TAR arşivinden kök dosya sistemini geri yüklerken, mutlak yol adlarına sahip tüm sembolik bağlantıları yeniden oluşturmak gerekecektir, çünkü TAR bunların hedeflerini göreli yol adlarına dönüştürür, bu nedenle rsync kullanmak daha basit bir alternatiftir. TAR arşivinin nasıl doğru şekilde geri yükleneceği daha sonra gösterilecektir.
Adım 2: Canlı bir işletim sistemi görüntüsü ile önyükleme yapın
ZFS'e dönüştürme işlemi, bir canlı CD işletim sistemi üzerinden gerçekleştirilecektir. VPS kontrol panelinizin yeteneklerine bağlı olarak, zaten önyüklemeye hazır bir canlı işletim sistemi görüntüsü bulunabilir. Alternatif olarak, Debian yansısından bir Debian canlı ISO'su indirebilir ve bunu VPS kontrol panelinize yükleyebilir, ardından bu ISO'dan önyükleme yapabilirsiniz; bu, VPS'iniz farklı bir dağıtım çalıştırsa bile sorunsuz çalışacaktır. Canlı işletim sistemi ISO görüntüsü kullanmaya dikkat edin, kurulum ISO'su değil, çünkü kurulum görüntüleri apt içermez ve gerekli yazılımları canlı ortama yükleyemez. Eğer VPS kontrol paneliniz kullanıcı tarafından sağlanan bir ISO görüntüsünden önyüklemeyi destekliyorsa, Adım 3'e geçin, aksi takdirde indirilen ISO'yu bir takas bölümünü, eğer varsa, EXT4'e dönüştürerek ve bu geri kazanılan depolama alanında ISO'yu saklayarak önyükleyebilirsiniz, ardından GRUB2 bu ISO'dan önyüklemeyi yapmak üzere yapılandırılabilir. Bu işlem şu şekilde yapılır:
# fdisk --list /dev/vda
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 83 Linux
/dev/vda2 69203584 73397887 4194304 2G 82 Linux swap
Bu VPS, ISO'yu depolamak için yeterince büyük olan /dev/vda2'de 2GB'lık bir takas bölümüne sahiptir. EXT4 dosya sistemini oluşturun, bağlayın ve ISO'yu üzerine indirin:
# swapoff /dev/vda2     # takas bölümünü devre dışı bırak
# mkfs.ext4 /dev/vda2   # EXT4 dosya sistemini oluştur
# mount /dev/vda2 /mnt  # geri kazanılan alanı bağla
# mkdir /mnt/images/
# wget -O /mnt/images/image_file.iso <image_URL>
ardından GRUB2'yi bu ISO'dan önyükleme yapması için yönlendirin; /etc/grub.d/40_custom dosyasını şu şekilde düzenleyin:
#!/bin/sh
exec tail -n +3 $0
# Bu dosya, özel menü girişleri eklemek için kolay bir yol sağlar. Sadece bu yorumdan sonra
# eklemek istediğiniz menü girişlerini yazın. Yukarıdaki 'exec tail' satırını değiştirmemeye
# dikkat edin.

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
}
ve yapılandırmayı uygulamak için
update-grub2
VPS'yi yeniden başlattığınızda, GRUB2 menüsü canlı görüntüden önyükleme seçeneği sunacaktır. Buradan sağlayıcının kontrol paneli tarafından sunulan VNC kurtarma konsolu ile devam edin.
Adım 3: Canlı OS ortamına ZFS kurun
Canlı OS görüntüsünü başlatın ve terminaline erişin. Ardından canlı OS ortamına ZFS paketlerini kurun:
# echo deb http://deb.debian.org/debian stretch contrib >> /etc/apt/sources.list
# apt update
# apt install zfs-dkms
# modprobe zfs
Artık canlı OS, VPS kök dosya sisteminizi biçimlendirmek için gereken ZFS çekirdek modülüne ve ZFS yardımcı programlarına sahiptir.
Adım 4: VPS diskini bölümleyin
VPS diskini bölümlemek için iki alternatif senaryo vardır:
  1. Canlı ISO'yu /dev/vda2'de sakladıysanız, şu anda bu bölümü değiştiremezsiniz çünkü canlı sistem buna bağlıdır ve VPS diskine herhangi bir bölümleme yapılmayacaktır. ZFS, mevcut /dev/vda2 bölümü üzerinde biçimlendirilecek ve /dev/vda1 olduğu gibi kalacak ve daha sonra çekirdek ve initrd'yi depolamak için kalıcı önyükleme bölümü olarak yeniden kullanılacaktır. Adım 5'e atlayın.
  2. Canlı ortamınız VPS diskinde depolanan bir ISO dosyasına bağlı değilse, diski GRUB2 için küçük bir önyükleme bölümü ve kalan tüm disk alanını kaplayacak büyük bir ZFS kök bölümü oluşturarak yeniden bölümlendirin. Aşağıdaki iki bölümü oluşturmak için fdisk komutunu çalıştırın:
    # 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
    Birincil bir önyükleme bölümü oluşturun, 100MB genişliğinde ve önyüklenebilir olarak bir yıldız (*) ile işaretleyin, bölüm kimliği = 83 (Linux) olacak. GRUB2 ile uyumluluk için EXT4 olarak biçimlendirilecek ve önyükleme verilerini içerecek. Ardından ZFS için başka bir birincil bölüm oluşturun, kimliği = bf (Solaris) olacak. Değişiklikleri diske yazın ve fdisk'i kapatın. Disk düzgün bir şekilde bölümlendirildiğine göre, artık önyükleme bölümünü biçimlendirebilirsiniz:
    # mkfs.ext4 /dev/vda2
Adım 5: VPS diski üzerine ZFS kurun
/dev/vda1'i bir ZFS birimi olarak biçimlendirin:
# 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
Bu seçenekler kümesi, en yeni ve gelecekteki disklerle en yüksek uyumluluk için ZFS belgeleri tarafından önerilmektedir. compression=zstd seçeneği, varsayılan LZ4'ten daha yüksek bir sıkıştırma oranına sahip olan ZSTD sıkıştırma algoritmasını etkinleştirir, ancak VPS'inizde yüksek disk G/Ç varsa CPU kullanımını azaltmak için compression=lz4 kullanabilirsiniz. Havuz, kök havuzlar için en yaygın kullanılan isim olan rpool olarak adlandırılmıştır. Bu komut tamamlandığında, rpool, yukarıdaki -R /mnt seçeneğiyle belirtildiği gibi canlı ortamın /mnt dizinine bağlanacaktır, ancak sonraki her önyüklemede otomatik olarak / dizinine bağlanacaktır. Yedeklemenizi canlı ortamdan geri yüklemek için /mnt dizinine bağlamak gereklidir.
Adım 6: Yedekleme yeni ZFS kök dosya sistemine geri yükle
Yedekleme verilerini yedekleme VPS'inden almak için canlı ortama OpenSSH sunucusunu yükleyin:
# apt install openssh-server
Basitlik için, canlı ortamın /etc/ssh/sshd_config dosyasında PermitRootLogin yes seçeneğini etkinleştirin, ardından güvenli bir root şifresi belirleyin ve OpenSSH'yi yeniden başlatın:
# passwd
# service restart ssh
ve yedek VPS'ten yedek verilerin geri yüklenmesini başlatın, bu işlem /mnt üzerine bağlanan ZFS kök havuzunu dolduracaktır:
## yedek VPS'ten
# rsync -arxz backup.d/* root@target:/mnt/
veya yedek arşivi oluşturmak için TAR kullandıysanız, şu şekilde geri yükleyin:
## yedek VPS'ten
# cat backup.tgz | ssh root@target "tar -C /mnt -zaxf -"
ancak Adım 1'de yazdığım gibi, çıkarma sırasında TAR, mutlak sembolik bağlantıların hedef yolunu göreli yollara dönüştürür; bu sembolik bağlantıların tümü aşağıdaki gibi düzgün bir şekilde geri yüklenebilir. Kök dosya sistemini yedeklemek için TAR kullanmadıysanız bu geri yükleme gerekli değildir. Yedek VPS'ten, arşivdeki tüm sembolik bağlantıları listeleyin:
## yedek VPS'ten
# tar -tvf backup.tgz | egrep -- '->' >list_of_symlinks.txt
ardından listeyi hedef VPS'e /mnt dizinine kopyalayın, bu dizin artık yedekten yeniden doldurulmuş kök dosya sistemini içeriyor:
## yedek VPS'ten
# scp list_of_symlinks.txt root@target:/mnt/root/
Hedef VPS'ten, /mnt dizinine chroot yapın ve tüm mutlak sembolik bağlantıları geri yüklemek için bu Bash betiğini çalıştırın:
## chroot ortamından
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
Kök dosya sisteminiz artık yedekten tamamen geri yüklendi ve başlatılabilir, ancak önce çalışan bir bootloader'a ihtiyacınız var.
Adım 7: GRUB2'yi Kurun
Eğer chroot içindeyseniz, çıkın ve canlı ortama geri dönün. Ardından sanal dosya sistemlerini /mnt'ye bağlayın ve önyükleme bölümünü bağlayın:
# mount --bind /dev  /mnt/dev
# mount --bind /proc /mnt/proc
# mount --bind /sys  /mnt/sys
# mount /dev/vda2 /mnt/boot
/mnt/boot/ içindeki önceden var olan içeriği yeni önyükleme bölümüne kopyalamayı seçebilirsiniz. Kök havuzuna chroot yapın ve içinden, initrd oluşturmak için gereken ZFS initramfs kancasını, ZFS çekirdek modülünü ve ZFS kullanıcı alanı araçlarını kurun:
# chroot /mnt
# apt install pkg-dev linux-headers-amd64 linux-image-amd64
# apt install zfs-dkms zfs-initramfs
ardından GRUB2 paketini kurun:
# apt install grub-pc
# update-initramfs -u -k all
ZFS havuzunu kök cihaz olarak ayarlamak için GRUB_CMDLINE_LINUX değişkenini değiştirerek /etc/default/grub dosyasını düzenleyin:
## this is /etc/default/grub
GRUB_CMDLINE_LINUX="root=ZFS=rpool"
ardından yapılandırmayı uygulayın:
# update-grub
ve son olarak GRUB2'yi MBR'ye yükleyin:
# grub-install /dev/vda
Adım 8: ZFS kök havuzuna önyükleme yapın
Sistem hazır, yedekten tamamen geri yüklendi ve önyükleme yapılabilir. chroot'tan çıkın ve tüm sanal dosya sistemlerini bağlantıyı kaldırın, ardından ZFS kök havuzunu dışa aktarın:
# exit # rpool chroot'tan çık
# umount /mnt/dev
# umount /mnt/proc
# umount /mnt/sys
# umount /mnt/boot
# umount /mnt
# zpool export -a
Artık ISO görüntüsünü VPS kontrol panelinden kaldırabilirsiniz, eğer bu seçeneği kullandıysanız, ya da ISO'yu sabit sürücüden silebilir ve sistemi ZFS kök havuzuna yeniden başlatabilirsiniz:
# reboot
VPS kök dosya sisteminin EXT4'ten ZFS'e dönüştürülmesi tamamlandı ve VPS, her zamanki gibi eski kurulu sisteminize önyükleme yapacak.

Daha fazla makale oku
Almanca Arapça Çince Endonezya Filipino Fransızca İngilizce İspanyolca Japonca Korece Malay Polonya Portekizce Rusça Türkçe Vietnamca বাংলা
Yardım  –  Dizin  –  Gizlilik Politikası  –  İletişim  –