dd disk imajları kullanarak sunucunuzu yedekleme ve geri yükleme
dd, tüm bir diskin sektör sektör bir görüntüsünü oluşturur. Bu görüntüyü, diski yedekleme anındaki durumuna geri yüklemek için kullanabilirsiniz. Bu kılavuz, dd ile nasıl disk görüntüsü oluşturulacağını ve görüntüden nasıl geri yükleneceğini gösterir. dd disk düzeyinde çalıştığından, kopyaladığınız çalışan sistemden değil, bir canlı (live) ortamdan (Finnix) çalıştırın.
Tüm bir diskin blok düzeyinde bir kopyasına ihtiyacınız olduğunda dd kullanın. Dosya düzeyinde yedeklemeler (tek tek dosyalar ve klasörler) için genellikle rsync veya tar daha uygundur.
Başlamadan önce
- Finnix ISO'su
- sunucunun IP-KVM'sine erişim (IP tabanlı KVM)
- görüntü için yeterli boş alana sahip depolama (yedekleme senaryolarındaki nota bakın)
- uzak depolamaya yedekleme yapıyorsanız SSH kimlik bilgileri
- root erişimi
1. dd hakkında kısa bir not
dd verileri blok blok kopyalar. Komutun önemli kısımları:
- if= kaynak (nereden okunacağı)
- of= hedef (nereye yazılacağı)
- bs=8M blok boyutunu ayarlar ve kopyalama performansını artırabilir
- status=progress ne kadarının kopyalandığını gösterir, büyük disklerde faydalıdır
Varsayılan olarak, aşağıdaki komutlar sağlıklı bir diski kopyalar. Kaynak diskte okuma hataları varsa conv=noerror,sync ekleyin: dd bu durumda durmak yerine okuma hatalarının ötesine geçmeye devam eder ve okunamayan blokları sıfırlarla doldurur. Bu, sonraki blokların hizalı kalmasını sağlar, ancak doldurulan alanlar verilerini kaybeder, bu nedenle görüntüdeki dosya sistemi hasar görmüş olabilir. Arızalanan bir disk için, arızalı disklerden veri kurtarmak üzere tasarlanmış ve okuma hatalarının bir haritasını tutan ddrescue kullanmayı düşünün.
dd, hedefin üzerine sormadan tamamen yazar. Yanlış bir of= verileri yok eder. Herhangi bir komut çalıştırmadan önce her zaman aygıt adlarını kontrol edin.
2. Hazırlık
Finnix'ten önyükleme yapın. Finnix ISO'sunu IP-KVM üzerinden bağlayın ve sunucuyu bu ISO'dan önyükleyin. Bu, yedeklediğiniz diskten yüklü işletim sistemini çalıştırmadan sunucu diskleriyle çalışmanızı sağlar. Çalışan bir sistemin görüntüsünü almaktan kaçının: kaynak diskte değiştirilmekte olan bağlı dosya sistemleri varsa, görüntü tutarsız olabilir. Kaynak diskin çalışan ortam tarafından kullanılmadığından emin olun.
Diskleri belirleyin. Diskleri boyutları ve bağlama noktalarıyla birlikte listeleyin:
lsblk -o NAME,SIZE,TYPE,MOUNTPOINTS
Alternatif olarak:
fdisk -l
Sistem diskini bulun (örneğin /dev/sda) ve aygıt adını not edin. Bu en önemli adımdır: dd onay istemez, bu nedenle buradaki bir hata yanlış diski siler. Aşağıdaki komutlarda /dev/sda yalnızca bir örnektir. Bunu lsblk ile belirlediğiniz gerçek diskle değiştirin. Görüntüsünü almadan önce kaynak diskin lsblk çıktısında herhangi bir bağlama noktası göstermediğinden emin olun.

3. Senaryo A: SSHFS üzerinden bulut depolamaya yedekleme (CloudBox)
Görüntüyü INTROSERV CloudBox'a veya herhangi bir SSH depolamasına kaydetmek için bunu kullanın. SSH kimlik bilgilerini (kullanıcı, ana bilgisayar, yol) sipariş ayrıntılarınızdan alın.
Bir bağlama noktası oluşturun:
mkdir -p /mnt/backup
Bulut depolamayı bağlayın:
sshfs user@host:/path /mnt/backup
Disk görüntüsünü oluşturun:
dd if=/dev/sda of=/mnt/backup/sda.img bs=8M status=progress
dd tamamlandığında, ne kadar veri kopyalandığını bildirir. sda.img görüntüsü artık bulut depolamanızda.
SSHFS üzerinden büyük bir kopyalama yavaş olabilir. SSH bağlantısı kesilirse, kopyalama başarısız olabilir ve görüntü eksik kalabilir.
Görüntü boyutu, kullanılan veri miktarı değil, kaynak diskin tamamının boyutuna yaklaşık olarak eşittir. 100 GB verisi olan 2 TB'lık bir disk yine de yaklaşık 2 TB'lık bir görüntü oluşturur. Depolama alanının yeterli boş alana sahip olduğundan emin olun.
İsteğe bağlı: alan tasarrufu sağlamak ve ağ aktarımını azaltmak için görüntüyü oluştururken sıkıştırın:
dd if=/dev/sda bs=8M status=progress | gzip -c > /mnt/backup/sda.img.gz
Sıkıştırılmış bir görüntüyü şu şekilde geri yükleyin:
gunzip -c /mnt/backup/sda.img.gz | dd of=/dev/sda bs=8M status=progress
Sıkıştırılmış boyut, disk içeriğinin ne kadar sıkıştırılabilir olduğuna bağlıdır. Aşağıdaki sağlama toplamı kontrolü, sıkıştırılmamış bir .img dosyası için geçerlidir.
4. Senaryo B: aynı sunucudaki başka bir fiziksel diske yedekleme
Sunucuda görüntüyü tutacak kadar büyük ikinci bir disk varsa (örneğin /dev/sdb) bunu kullanın. Hedef disk, kaynak diskin tamamının bir görüntüsü için yeterli boş alana sahip olmalı ve kaynak disk olmamalıdır.
Bir bağlama noktası oluşturun ve ikinci diski bağlayın:
mkdir -p /mnt/backup mount /dev/sdb1 /mnt/backup
Disk görüntüsünü oluşturun:
dd if=/dev/sda of=/mnt/backup/sda.img bs=8M status=progress
5. Görüntüyü doğrulama (isteğe bağlı)
Görüntüyü doğrulamak için, kaynak diskin ve görüntünün SHA-256 sağlama toplamını hesaplayın ve karşılaştırın. Görüntü oluşturma ile sağlama toplamı hesaplama arasında kaynak disk değişmemelidir. Bu işlem tüm diski yeniden okur, bu nedenle büyük disklerde zaman alır:
sha256sum /dev/sda sha256sum /mnt/backup/sda.img
İki değer eşleşmelidir.
6. Geri yükleme
Geri yükleme, yedeklemenin tersidir: görüntü kaynak (if=) olur ve disk hedef (of=) olur. Finnix'ten tekrar önyükleme yapın ve görüntüyü içeren depolamayı, yedekleme sırasında olduğu gibi bağlayın.
Geri yüklemeden önce, hedef diskin orijinalinden küçük olmadığından emin olun. Kaynakta çok az veri kullanılmış olsa bile, tam disk görüntüsü daha küçük bir diske geri yüklenemez.
Bulut depolamadan:
dd if=/mnt/backup/sda.img of=/dev/sda bs=8M status=progress
İkinci bir diskten: önce onu bağlayın, ardından aynı komutu çalıştırın. Burada da /dev/sda yalnızca bir örnektir. Bunu gerçek hedef diskle değiştirin.
Geri yükleme, hedef diskin tamamının üzerine yazar. of= parametresinin geri yüklemek istediğiniz diski gösterdiğinden emin olun. dd tamamlandığında, sunucuyu yeniden başlatın ve geri yüklenen diskten önyükleme yapın.
Hedef disk orijinalinden büyükse, fazla alan kullanılmadan kalır. Gerekirse daha sonra bölümü ve dosya sistemini genişletebilirsiniz; kesin komutlar bölüm düzenine ve dosya sistemine bağlıdır. Farklı donanıma geri yüklüyorsanız, ek önyükleme yapılandırması gerekebilir. Kaynak disk LVM, LUKS, RAID veya başka bir depolama katmanı kullanıyorsa, geri yükledikten sonra, özellikle farklı donanımda, ek yapılandırma gerekebilir.