Ext4 biçimli bir diski ext4 ile LVM'ye dönüştürmenin en hızlı yolu?


12

Şu anda cp -aR(% 99 dolu) 1 TB ext4 biçimli diskimden yeni bir LVM-ext4-on-it diskine veri kopyalamak için çalışıyorum. Sonsuza kadar sürüyor.

Diski yerinde "dönüştürmeye" çalışmanın herhangi bir yolu var mı? EC2'deyim, böylece yedekleme birkaç dakika sürüyor.

Veya alternatif olarak, cpext4 dosya sistemini doğrudan LVM diskine kopyalamaktan daha hızlı bir yol olabilir mi?

Yanıtlar:


23

Bu dönüşümü yerinde yapan bloklar (née lvmify) yazdım . Dosya sistemini biraz daraltarak, dosya sisteminin başlangıcını bölümün sonuna taşıyarak ve yerine bir LVM süper bloğunu (doğru PV / LV / VG ile önceden yapılandırılmış) kopyalayarak çalışır.


bu gerçekten ilginç geliyor! Ben sadece denemek için 500GB benim diğer bölüme (zaten lvm olan) yedekleme düşünüyorum!
Kova Gücü

1
@ Gabriel, bu canlı fs üzerinde çalışır mı? Yani FS'nin bağlantısını kesmem gerekiyor mu, o zaman yerinde yapıyor, hatta ar / w monte edilmiş kök FS üzerinde bile çalışacak mı?
Gavriel

1
@AmrMostafa: "Güzel" sağlam mı? Dosya sistemlerim hakkında bir şeyim var, kaya gibi sağlam olmaları gerekiyor ... :-)
TJ Crowder

3
Ubuntu Trusty + kullanıcıları gerekli python 3.3'ü
kurmakta zorlanacaklar

1
5 kulak önce güncellenmesine rağmen, çelik çalışıyor. NVMe SSD, GPT bölüm şemasında onaylandı. Not: Python 3.6'yı daha iyi kullanın.
tosh

2

Diskin nasıl canlı dönüştürüleceğinden emin değilim, ancak rsync'in verilerinizi kopyalamanın daha iyi ve daha güvenli bir yolu olacağını düşünüyorum. Aktarımın durması durumunda verileri sürdürmenizi ve sağlam kalmanızı sağlar.

Yerel bir sisteme LVM olarak harici bir sürücü ekleyen biri tarafından tamamlanmış benzer bir süreç buldum. Çok fazla bilgi yok, ama başlamak için yeterli olacağını düşünüyorum:

"Bu yüzden bugün LVM harika olduğunu keşfettim. Debian'ı yüklerken," LVM - Tüm diski kullan "ı seçtim. Ancak ana sürücü yavaş ve küçük bir 5200 rpm dizüstü bilgisayar sürücüsüdür. Bugün yedek 1.5 TB'lık sürücümü taktım ve önyükledim. bunun yerine bu daha büyük daha hızlı sürücüdeki sistemi

LVM yaklaşımı: birim grubuna / dev / sdc ekleyin, sonra "pvmove / dev / sda" komutunu çalıştırın. Bu, tüm verileri sda'dan diğer sürücülere taşır (yalnızca sdc kullanılabilir). Yeniden başlatmaya gerek yok, sökmeye gerek yok. Bunu yazarken veriler taşınıyor.

Daha sonra, yavaş sürücüyü birim grubundan ve voila'dan kaldırmak için "vgreduce megatron / dev / sda" yapın. Veriler taşındı. (megatron, birim grubunun ve bilgisayarımın adıdır). Bu birçok kişi için eski bir haber olabilir ama bunun gerçekten harika olduğunu düşündüm :) "

Bu yerel olarak yapıldı, ancak ek araştırma ile, belki bunu karşılamak mümkün düşünüyorum.

kaynak


2

Böyle bir LVM dönüşümünü "anında" yapmak için hiçbir yöntem yoktur.

LVM, dosya sisteminizin altında birden çok fiziksel cihazda genişletmek veya şeritlemek veya yansıtmak vb. İçin bulunur. Mantıksal bir birim oluşturmanın son adımı, üzerine bir dosya sistemi yerleştirmektir. İşte RHEL6'dan örnekler .

Yapmanız gereken, o cihazdaki verileri yedeklemek veya arşivlemek, ardından mevcut dosya sistemini yok etmek, mantıksal bir birim oluşturmak ve bir dosya sistemini en üste koymaktır. Bu bir linux işletim sisteminde bir kök dosya sistemi ise, yeniden yükleme yapmayı düşünün. Daha hızlı olabilir.

Daha hızlı kopyalar için sevdim dd, ama sık kullanmıyorum. İle hata yapmak ddtehlikelidir. Deneyebileceğiniz bir şey, tar czv <source fs> | (cd <destination fs>; tar x)sıkıştırılmış bir tar dosyasını anında aktaracak.

İyi şanslar!


1
Kullanılması sıkıştırma katran operasyonda hiç bir anlam ifade etmiyor. Verilerin sıkıştırılacağı tek yer, borular halinde olduğu için bellektir . diske yazılmadan hemen sonra tekrar sıkıştırılmamış olur. Sadece şimdi, işlem, CPU yükünü birden fazla kez üretir, çünkü gereksiz yere hem sıkıştırır hem de sıkıştırmaz. Ayrıca, tüm dosya sistemlerini içeren böyle bir işlem için en azından tar cSf - | tar xvpf - seyrek dosyaları ve izinleri işlemek isteyeceksiniz . Muhtemelen --selinuxde (hedef hacim daha sonra kaynağın yerini alacaksa).
FeRD

Kaynak ve hedef cihazlarınız aynı ana bilgisayarda bulunuyorsa veya yedek CPU döngüleriniz yoksa bu iyi bir noktadır. Bunlar olay bazında dikkate alınacak noktalar. "S" ve "p" anahtarlarını ve "--selinux" argümanını seviyorum.
dafydd

Mmm, herkes, bir ağ bağlantısı üzerinden anında bir katran işlemini pipete ederek bir dosya sistemini klonlarsa, o zaman (a) benden daha cesur bir ruhturlar, ancak (b) -ptoplantı sahipleri kullanıcı adlarını paylaşmadıkça istemeyebilirsiniz / UID'ler (manpage bana -pkök olarak çalıştırıldığında GNU katranı için varsayılan olduğunu hatırlatıyor olsa da ) ve --selinuxdaha fazla tehlikeyle doludur - muhtemelen doğruya (final) monte edildikten sonra her şeyi bir restorecon -Rv(veya -Rp) yapmak daha iyidir ) yer.
FeRD

dd, bir bölümü kopyaladığınız için bu işlem için uygun araçtır. dd yeni bölümde tam bir kopya oluşturur, sonra fstab dosyasını eski yerine yeni bölümden yüklenecek şekilde değiştirirsiniz. Tüm bölümleri eski sürücüden kaldırmayı tamamladıktan sonra, dosya sistemini yok edebilir ve sürücüyü LVM fiziksel diskler grubuna ekleyebilir ve ardından alanı dilediğiniz şekilde genişletmek için kullanabilirsiniz.
Xalorous
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.