Bir BTRFS alt hacmini nasıl yeniden adlandırabilirim?


24

BTRFS dosya sistemine sahip bir dizi alt birim var. Çok uzak çok iyi. Bir alt hacmin adını değiştirmem gerekiyor, ne yazık ki btrfsprogram bir alt hacmin adını değiştirmeme izin vermiyor. Google’da arama yapmak bazı sonuçlar doğurdu , biri sadece yapabilirim mv, diğeri sadece snapshotyeni bir isme ve eski alt hacmi silebileceğimi söyledi. Bölümümü kilitlemeden ve onu yedekten yeniden yüklemek zorunda kalmadan önce (oldukça büyük) sorum şu:

  • Bir alt sesi yeniden adlandırmanın şu anda en iyi yolu nedir?
  • Sadece mvsorun olur mu, yoksa bazı iç yapıları geçersiz kılar mı?
  • Yeni bir enstantane yapmak ve eski alt sesi kaldırmanın yolunu mu çekiyorsunuz, yoksa bazı sakıncaları var mı?

Her şeyin hala deneysel olduğunu biliyorum, ancak amaçlarım için gayet iyi çalışıyordu (şimdiye kadar ve her gün için artan yedeklemelerim var).


1
btrfs'in sizin için iyi çalıştığını duyduğuma sevindim. Şu ana kadar benim için iyi çalışıyor. Sorun yok.
Monica Cellio için MountainX

Yanıtlar:


16

Sadece mvbu. Ubuntu topluluğu belgelerinde önerilen yol budur .

Bunun neden doğru yol olduğunu açıklığa kavuşturmak için btrfs sysadmin kılavuzundan bir alıntı:

Anlık

Anlık görüntü, btrfs'in COW özelliklerini kullanarak verilerini (ve meta verilerini) diğer bazı alt hacimlerle paylaşan bir alt hacimdir. [Yazılabilir] bir anlık görüntü yapıldıktan sonra, orijinal alt hacim ile yeni anlık görüntü alt hacmi arasında durum açısından hiçbir fark yoktur. Bir anlık görüntüye geri dönmek için, değiştirilen orijinal alt hacmin bağlantısını kaldırın ve anlık görüntüyü yerine yerleştirin. Bu noktada, orijinal alt hacim istenirse silinebilir. Bir anlık görüntü bir alt hacim olduğundan, anlık görüntülerin anlık görüntüleri de mümkündür.


8

Dikkat edilecek birkaç önemli şey var. İsimleri:

btrfs Subvolume - bağımsız veri kabı insidedosya sistemi. Bu olarak temsil edilir dizinde mevcut FS. Yeni bir alt hacim oluşturursanız, dosya sistemi içinde mantıksal veri bloğu kullanmaya hazır boş olacaktır. Verilerin mantıksal olarak ayrılması gereken yerlerde, örneğin farklı VM'lerde veya farklı alt hacimlerdeki farklı istemcilerde kullanılması çok uygun. Bu tüm mantıksal veri bloğunun sadece subvolume delete komutuyla very fastkaldırılmasını sağlar .

btrfs Snapshot - existinganlık görüntü yapıldığı andaki tüm verilerinin bulunduğu alt hacmin bir kopyası . Ayarların veya değişikliklerin geri alınmasında operasyonel yedekleme olarak kullanılabilir, örneğin, aşırı hacimli anlık görüntü alma, değişiklik yapma (VM veya veri), her şeyin yolunda olup olmadığını test etme, bazı lütuf süresi sonra anlık görüntüyü kaldırma. Dikkat edilmesi gerekenler: anlık görüntüler yalnızca okunabilir ( -ranahtar) ve bu nedenle FS değişikliklerinin artış blokları olarak kullanılabilir ve muhtemelen başka bir BTRFS'ye aktarılabilir!

Güncel (2016-12-30) BTRFS sınırlamaları:

Verileri alt hacimler arasında kopyalamak veya taşımak, örneğin mv dir1/dataset1 dir_subvolume1/, verileri başka bir alt hacme kopyalamak ve taşınması durumunda orijinalinden çıkarmak için tüm gerçek değerleri üretir. Ve sadece referanslar alarak ve böylece BTRFS'nin COW özelliğini kullanarak tonlarca verinin çok verimli bir şekilde kopyalanması:

cp -a --reflink=always dir1/dataset1 dir_subvolume1/

ve gerekirse:

rm -rf dir1/dataset1

Salt okunur Alt dizin anlık görüntüsü mvmevcut dizin düzeyinde yeniden adlandırılabilir (taşınır ), ancak yeniden adlandırılamaz / farklı alt düzey seviyelerine taşınamaz. mesela mv /btrfs/subvol_snap1 /btrfs/.snaphotsçok hata açıklanamayan üretir, mümkün değildir: mv: cannot move 'subvol_snap1' to '.snapshots/subvol_snap1': Read-only file system. Böyle bir anlık görüntüyü taşıyabilmek için, tercih edilen yeni konuma mevcut salt okunur anlık görüntünün yeni salt okunur görüntüsünü oluşturmanız ve ardından eski olanı kaldırmanız gerekir:

btrfs sub snap -r /btrfs/subvol_snap1 /btrfs/.snaphots/subvol_snap1
btrfs sub del /btrfs/subvol_snap1

Sadece daha kolay yaşamak için:

btrfs sub list /btrfs

Umarım bu, tüm yeni btrfs hayranlarına zaman kazandıracak :)


4

Kök birimini iç içe geçmiş bir alt hacimle yeniden adlandırmak isterseniz, kök birimin find $ROOT_VOL -xdev -deleteönceki içeriğini kaldırmak için onu anlık görüntülemeniz ve ardından a yapmanız gerekir . Ters manipülasyon (alt hacmin kök hacmine yeniden adlandırılması) mümkün görünmüyor.

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.