Ana içeriğe geç

VM taşıma: düğümü ve havuzu değiştirme

vStack Center'da "VM taşıma", mekanizmaları farklı olan iki ayrı işlem anlamına gelir. Hangisini seçeceğiniz, çözmeniz gereken soruna bağlıdır. Bir düğüm bakıma alınıyorsa, makinenin verileri yerinde kalırken başka bir düğümde çalışması gerekir. Bir havuzun alanı tükeniyorsa veya havuz kullanımdan kaldırılıyorsa, verileri başka bir havuza taşımanız gerekir ve makineyi çalıştıran düğümün bir önemi yoktur.

bilgi

Canlı taşıma 3.1.0 sürümünde sunuldu: çalışan bir makine durdurulmadan başka bir düğüme taşınır ve konuk işletim sistemi çalışmaya devam eder. Verilerin havuzlar arasında taşınması için ise makinenin hâlâ durdurulması gerekir.

Bu sayfa, makinenin önce durdurularak taşınmasını açıklar. Bu yöntem her sürümde çalışır ve ayrı bir yetki gerektirmez. Canlı taşıma, ön koşulları ve ilerlemenin izlenmesi için "VM'leri taşıma ve klonlama" sayfasına bakın. Canlı taşıma kullanılamıyorsa bir kesinti penceresi planlayın: düğüm değiştirilirken kesinti süresi, makineyi durdurup başlatmak için gereken süreye; havuz değiştirilirken ise verilerin kopyalanması için gereken süreye eşittir.

Düğüm değiştirme, başlatma sırasındaki yerleşimi kullanır. Bir makineyi başlatırken düğümü açıkça seçersiniz; seçim yapılmazsa vStack Center, ONLINE durumundaki en az yüklü düğümü seçer. Bu her makine için geçerli değildir: uzaktan başlatma ve otomatik yerleşim, diskleri NVMe modunda olan makineler için kullanılabilir; virtio-blk kullanan bir makine ise yalnızca veri havuzunu barındıran düğümde başlayabilir.

Havuz değiştirme bir veri taşıma işlemidir: tam bir ZFS send/receive döngüsünün ardından disklerin, anlık görüntülerin (snapshot) ve makinenin kendisinin yeniden kaydı, ardından da kaynak veri kümesinin (dataset) silinmesi gerçekleşir. Bu, tek bir sonuç döndüren uzun bir işlemdir: sonuç, kopyalama başladığında değil, tüm döngü tamamlandıktan sonra gelir. vStack Center kopyalama ilerlemesini göstermez.

GörevNe yapılmalıNe taşınırTemel kısıtlama
Kesintinin kabul edilemediği durumda bir düğümü bakım için boşaltmakSeçilen düğüme canlı taşımaYalnızca yürütme; veriler havuzunda kalır3.1.0 sürümünden itibaren kullanılabilir; Live Migrate VM yetkisi gerekir; makinenin çalışıyor olması gerekir
Kesintinin kabul edilebildiği durumda bir düğümü bakım için boşaltmakMakineyi durdurup seçilen düğümde başlatmakYalnızca yürütme; veriler havuzunda kalırvirtio-blk ile makine yalnızca havuzun düğümünde başlayabilir
Bir depolama havuzunu boşaltmakMakineyi başka bir havuza taşımakVeriler: diskler, anlık görüntüler, VM kaydıVM durdurulmuş olmalıdır; hedef havuz kaynak havuzdan farklı olmalıdır
Kaynağın yanında hızlı bir kopya oluşturmakMakineyi klonlamakHiçbir şey taşınmaz — bir kopya oluşturulurKlon her zaman kaynak havuzdadır; işlem API üzerinden yapılır

Ön koşullar​

  • Makine üzerinde izinler: Cluster master kümedeki herhangi bir VM'yi görebilir; normal bir kullanıcı yalnızca kendi VDC'lerindeki (sanal veri merkezleri) makinelerle çalışabilir. Başlatma ve durdurma için role_id ≤ 3 VDC rolü gerekir;
  • Havuz değiştirmek için Cluster master rolü: taşıma yalnızca bu rol için kullanılabilir;
  • Hedef havuz bir düğümde içe aktarılmış (import) olmalıdır; aksi takdirde vStack Center havuzun düğümünü belirleyemez ve -25307 kodunu döndürür;
  • z02 biçiminde bir hedef havuz adı: bir harf ve ardından iki rakam;
  • VDC kotaları ve küme kapasitesi makinenin başlamasına izin vermelidir: başlatma sırasında hem kotalar hem de bellek aşırı tahsisi (overcommit) denetlenir;
  • Üzerinde mutabık kalınmış bir kesinti penceresi;
  • VM klonlama için vStack Center 3.0.5, canlı taşıma için 3.1.0 sürümü; makinenin önce durdurularak taşınması ve verilerin havuzlar arasında taşınması daha eski sürümlerde de çalışır.

Adım 1. Makinenin mevcut durumunu kaydedin​

Herhangi bir taşımadan önce üç şeyi bilmeniz gerekir: makinenin şu anda nerede olduğu, hangi kaynakları kullandığı ve başka bir düğümde çalışıp çalışamayacağı.

  1. Provider Data Center → All Virtual Machines bölümünü açın ve makineyi bulun. State sütunu durumunu, Storage (GB) ise ne kadar alan kapladığını gösterir.
  2. Makine kartını açın ve General properties bölümünü kontrol edin: makineyi çalıştıran düğüm (Node), makinenin VDC'si, CPU (Cores), RAM, OS profile ve VM configuration version.
  3. Disks tablosunu okuyun: Name, Slot, Disk size (GB), Sector size, IOps limit ve MBps limit sütunları. Bu tabloyu kopyalanacak veri miktarını hesaplamak için kullanın ve hız sınırlarını kaydedin.
  4. Snapshots tablosundaki anlık görüntüleri sayın: Name, Date of creation ve Size (GB) sütunları. Taşımadan sonra anlık görüntü sayısı aynı olmalıdır.
Ne kaydedilmeliNeden
Makineyi çalıştıran düğüm (Node)Makinenin hangi düğümden ayrılması gerektiğini belirlemek
Makinenin veri havuzuKaynaktan farklı bir hedef havuz seçmek
Disk modu — NVMe veya virtio-blkMakinenin havuzun düğümü dışında bir düğümde başlayıp başlayamayacağını belirler
Durum (State)Makinenin başlatma veya taşıma komutunu kabul edip etmeyeceğini belirler
Anlık görüntü sayısıVeriler taşındıktan sonra doğrulama

Disk modu kartta ayrı bir alan olarak gösterilmez. Makine virtio-blk kullanıyorsa, bunu makineyi başka bir düğümde başlatmaya çalıştığınızda öğrenirsiniz: başlatma -460 koduyla reddedilir.

Adım 2. Makineyi durdurun​

Her iki işlem de durdurulmuş bir makine gerektirir, bu nedenle bu adım ortaktır.

  1. VM kartını açın (veya makineyi listede bulun), Actions öğesine tıklayın ve durdurma komutunu seçin.
  2. Konuk sistem ACPI'ye yanıt vermiyorsa, zorla kapatma zaman aşımı (0–999 saniye) ayarlayın veya ACPI ile kapatmayı devre dışı bırakın.
  3. State değerinin "stopped" olarak değişmesini bekleyin. İşlem sürerken makine kilitlidir: makineye yönelik diğer komutlar reddedilir.

Durdurma komutu, askıya alınmış bir makineyi de çalışan bir makine gibi kabul eder.

Görev A. Makineyi başka bir düğümde başlatın​

Bunu düğüm bakımından önce kullanın: veriler havuzunda kalır ve yalnızca yürütme konumu değişir.

  1. Makinenin disklerinin NVMe modunda olduğundan emin olun. virtio-blk kullanan bir makine yalnızca veri havuzunu barındıran düğümde başlayabilir. Makineyi başka bir düğümde başlatmaya çalışmak -460 kodunu döndürür.
  2. VM kartını açın, Actions öğesine tıklayın ve başlatma komutunu seçin.
  3. Hedef düğümü seçin. Düğüm numarası 1 ile kümedeki düğüm sayısı arasındadır. Otomatik seçimi etkin bırakırsanız vStack Center, ONLINE durumundaki en az yüklü düğümü seçer. Bu, bakımdan sonra çok sayıda makineyi başlatırken kullanışlıdır.
  4. State değerinin "running" olarak değişmesini bekleyin ve General properties bölümündeki Node alanını kontrol edin. Makinenin fiilen başladığı düğüm, hem açık hem de otomatik seçimde burada gösterilir.

Uygun düğüm yoksa -458 kodu döndürülür.

Yeniden başlatma düğümü değiştirmez: yeniden başlatma makinenin mevcut yerleşimini kullanır. Düğüm değiştirmek için makineyi durdurmanız ve ardından başlatmanız gerekir.

Görev B. Verileri başka bir havuza taşıyın​

Bunu bir havuz dolduğunda veya kullanımdan kaldırılırken kullanın. Taşıma, verileri bir ZFS send/receive akışıyla kopyalar, diskleri, anlık görüntüleri ve makineyi yeniden kaydeder, ardından kaynak dataset'i siler.

  1. Hedef havuzu seçin. Provider Data Center → Storage Resources bölümünü açın: ZFS pools tablosu Health, Consuming, Scrubbing, Resilvering, Current node ve Capacity (RAW) değerlerini gösterir. Resilver veya bütünlük denetimi devam etmeyen sağlıklı bir havuz seçin.
  2. Havuzu açın ve Properties bölümünde Free değerini makinenin tüm disklerinin toplam Disk size (GB) değeriyle karşılaştırın. Tüm diskler için yeterli boş alan olmalıdır. Hedef havuz adı z02 biçiminde olmalıdır.
  3. Makinenin durdurulmuş olduğundan veya oluşturulmuş ancak hiç başlatılmamış olduğundan emin olun. Taşıma diğer durumları kabul etmez ve -25306 kodunu döndürür.
  4. VM kartını açın, Actions öğesine tıklayın, taşımayı seçin ve hedef havuzu belirtin.
  5. Döngünün tamamlanmasını bekleyin. İşlem sürerken makine kilitlidir ve sonuç, kopyalama, yeniden kayıt ve kaynak dataset'in silinmesinden sonra bir kez gelir. Günlük paneli işlemin ilerleyişini gösterir — LOG öğesine tıklayın.
  6. Sonucu doğrulayın: Snapshots tablosundaki anlık görüntü sayısı taşımadan önce kaydedilen sayıyla eşleşmeli ve kaynak havuzun Storage Resources bölümünde daha fazla boş alanı olmalıdır. Disklerin havuzlara göre tam yerleşimini API sağlar — API başvurusuna bakın.
  7. Makineyi başlatın.

Aynı havuza taşıma yasaktır ve -25305 koduyla reddedilir. Kopyalama, sınırlı sayıda aktarım bağlantı noktası kullanır. Tümü başka taşımalar tarafından kullanılıyorsa -25308 kodu döndürülür. İşlemi daha sonra yeniden deneyin.

Görev C. Makineyi taşımak yerine hızlı bir kopya oluşturun​

Bazen sorunu taşıma yerine bir kopya çözer: örneğin bir güncellemeyi kopya bir makinede test etmeniz gerekir. Klon, durdurulmuş bir makinenin anında oluşturulan copy-on-write kopyasıdır. İşlem, disk boyutundan bağımsız olarak saniyeler sürer ve neredeyse hiç kapasite kullanmaz.

Klonlama web arayüzünde kullanılamaz. Bir yönetici işlemi API üzerinden gerçekleştirir — API başvurusuna bakın. Yalnızca klonun adı ve açıklaması belirtilir.

  1. Kaynak makineyi durdurun: çalışan bir makineyi klonlama girişimi -2603 koduyla reddedilir.
  2. Klonlamayı başlatın ve klonun adını belirtin.
  3. Klonun All Virtual Machines listesinde görünmesini bekleyin. Klon, yeni bir makineyle aynı sırayla oluşturulur: önce bir kayıt, ardından düğümde derleme.

Klon, kaynağın tüm yapılandırmasını devralır ve aynı VDC'de ve aynı havuzda oluşturulur; bu, makineyi taşımanın yerini tutmaz. MAC adresleri yeniden oluşturulur ve adresler normal oluşturmadaki gibi atanır.

uyarı

Mevcut bir klon kaynağına bağlı kalır. Klon var olduğu sürece kaynak silinemez ve kaynağın taşınması, kaynak dataset'lerin silindiği adımda başarısız olur. Bu bilinen bir kısıtlamadır. Önce klonları kaldırın, ardından kaynağı taşıyın.

İşin tamamlanması​

  1. Makineyi başlatın ve çalıştığını doğrulayın: VM listesinde State değerini ve kartta Node alanını kontrol edin.
  2. Havuz değiştirdikten sonra Storage Resources bölümünde boşalan kapasiteyi kontrol edin: kaynak havuzda daha fazla boş alan olacaktır. Kaynak dataset, taşıma döngüsünün bir parçası olarak silinir; ayrı bir komut gerekmez.
  3. Makine kartındaki Disks ve Snapshots tablolarında disklerin ve anlık görüntülerin bulunduğunu kontrol edin. Makine hız sınırlarını korur: diskler için IOps limit ve MBps limit değerlerini, ağ bağlantı noktaları için de bant genişliği sınırını kontrol edin.
  4. Makine düğüm bakımı için taşındıysa, düğümü ancak tüm makineleri başka düğümlerde başladıktan sonra hizmet dışı bırakın.

Sonucun doğrulanması​

Ne kontrol edilmeliNereye bakılmalıBeklenen sonuç
Makine gerekli düğümde çalışıyorVM kartı, General properties bölümüNode alanı seçilen düğümü gösterir
Makine çalışıyorVM listesi, State sütunuDurum "running" değerini gösterir
Anlık görüntüler mevcutVM kartı, Snapshots tablosuAnlık görüntü sayısı taşımadan önce kaydedilen sayıyla eşleşir
Diskler mevcutVM kartı, Disks tablosuDisk yapılandırması ve hız sınırları değişmemiştir
Kaynak havuzda alan boşaltılmışStorage Resources, Capacity (RAW)Kaynak havuzun kullanılan kapasitesi azalmıştır
Veriler hedef havuza taşınmışAPI üzerindenMakinenin havuzu ve her diskin havuzu hedef havuzdur

Bir sorun çıkarsa​

Ne görüyorsunuzNedenNe yapmalı
Hata kodu -25300Taşıma yalnızca Cluster master rolü için kullanılabilirKüme düzeyinde bir rolle oturum açın
Hata kodu -25306Makine ne durdurulmuş ne de "created" durumundaMakineyi durdurun ve fiilen durmasını bekleyin
Hata kodu -25305Hedef havuz kaynakla aynıBaşka bir havuz seçin: aynı havuza taşıma yasaktır
Hata kodu -25307Hedef havuzun düğümü belirlenemediHavuz içe aktarılmamış olabilir. Storage Resources bölümünde Current node sütununu kontrol edin
Hata kodu -25304Makinenin düğümü belirlenemediServer Nodes bölümünde düğüm durumlarını kontrol edin
Hata kodu -25308Kullanılabilir aktarım bağlantı noktası yokDiğer taşımaların tamamlanmasını bekleyin ve yeniden deneyin
Hata kodu -25310Taşıma döngüsü tamamlanmadı: yeniden kayıt başarısız olduKartta makine ve disk durumlarını kontrol edin; neden belirlenene kadar yeni bir taşıma başlatmayın
Hata kodu -460Makine virtio-blk kullanıyor: yalnızca kendi havuzunun düğümünde başlayabilirYürütme düğümünü değiştiremezsiniz. Verileri gerekli düğümdeki bir havuza taşıyın
Hata kodu -459NVMe modundaki Windows ilk kurulumu tamamlamamışKurulumu havuzun düğümünde tamamlayın, ardından uzaktan başlatın
Hata kodu -458Yerleşim için ONLINE durumunda düğüm yokDüğümleri yeniden hizmete alın veya bir düğümü elle seçin
Hata kodu -442, -443Var olmayan bir düğüm seçildiServer Nodes tablosundaki bir düğüm numarasını kullanın
Hata kodu -457Makine zaten çalışıyorYeniden başlatmadan önce durdurun
Hata kodu -455Makine askıya alınmışDevam ettirin, ardından başlatın
Hata kodu -409Makine başka bir işlem tarafından kilitlenmişO işlemin tamamlanmasını bekleyin; düğüm yanıt verdiğinde makinenin kilidi otomatik olarak açılır
Hata kodu -413, -414, -415VDC'nin depolama, bellek veya çekirdek kotası tükenmişKotayı boşaltın veya artırın
Hata kodu -440Aşırı tahsis hesaba katıldığında küme belleği tükenmişBaşka bir düğümde başlatın veya bellek boşaltın
Hata kodu -452Uzaktan başlatma sırasında diskler ağ üzerinden bağlanmadıMakineyi kendi havuzunun düğümünde başlatın ve fabric bağlantısını kontrol edin
Hata kodu -2603Klonun kaynağı durdurulmamışKlonlamadan önce makineyi durdurun
Hata kodu -2605Makine, yazılım tanımlı bir yönlendirici (Edge) gibi bir servis tarafından yönetiliyorServis makineleri klonlanamaz
Hata kodu -3001, -429Bu tanımlayıcıya sahip bir makine sizin için görünür değilMakineyi ve VDC'si için izinleri kontrol edin
Taşıma yanıt vermeden "takılmış" görünüyorSonuç, tüm döngüden sonra bir kez gelirBekleyin: süre disk boyutuna bağlıdır. Kopyalama ilerlemesi gösterilmez
Makine taşımadan sonra başlamıyorYerleşim değişti veya kaynaklar yetersizKotaları ve ONLINE düğümlerin kullanılabilirliğini kontrol edin; virtio-blk kullanan bir makineyi yeni havuzun düğümünde başlatın

Kısıtlamalar​

Taşıma ilerlemesi kullanılamaz: sonuç döngü tamamlandığında gelir ve ne kadar verinin kopyalandığını bildirmez. Süreyi, Disks tablosundaki makinenin disk boyutlarından tahmin edin.

Hedef havuz z02 biçiminde bir adla belirtilir. Başka bir ad biçimine sahip bir havuz taşıma hedefi olarak belirtilemez.

Taşıma iptal edilemez. Döngü başarısız olursa, yeni bir komut vermek yerine makinenin kartını okuyarak durumunu kontrol edin.

Ayrıca bkz.​

API yöntemleri​

Bu sayfadaki API işlemleri: vm-list, vm-get, vm-statuses, vm-snapshot-list, vms-stop, vms-start, vms-restart, vm-migration, vms-clone, pool-map-by-guid, pools-get, cluster-node-disable — API başvurusuna bakın.