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.
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örev | Ne yapılmalı | Ne taşınır | Temel kısıtlama |
|---|---|---|---|
| Kesintinin kabul edilemediği durumda bir düğümü bakım için boşaltmak | Seçilen düğüme canlı taşıma | Yalnızca yürütme; veriler havuzunda kalır | 3.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şaltmak | Makineyi durdurup seçilen düğümde başlatmak | Yalnızca yürütme; veriler havuzunda kalır | virtio-blk ile makine yalnızca havuzun düğümünde başlayabilir |
| Bir depolama havuzunu boşaltmak | Makineyi başka bir havuza taşımak | Veriler: 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şturmak | Makineyi klonlamak | Hiçbir şey taşınmaz — bir kopya oluşturulur | Klon 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 ≤ 3VDC 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;
z02biç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ğı.
- 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.
- 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.
- 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.
- 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 kaydedilmeli | Neden |
|---|---|
| Makineyi çalıştıran düğüm (Node) | Makinenin hangi düğümden ayrılması gerektiğini belirlemek |
| Makinenin veri havuzu | Kaynaktan farklı bir hedef havuz seçmek |
| Disk modu — NVMe veya virtio-blk | Makinenin 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.
- VM kartını açın (veya makineyi listede bulun), Actions öğesine tıklayın ve durdurma komutunu seçin.
- 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.
- 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.
- 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.
- VM kartını açın, Actions öğesine tıklayın ve başlatma komutunu seçin.
- 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.
- 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.
- 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.
- 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ı
z02biçiminde olmalıdır. - 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.
- VM kartını açın, Actions öğesine tıklayın, taşımayı seçin ve hedef havuzu belirtin.
- 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.
- 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.
- 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.
- Kaynak makineyi durdurun: çalışan bir makineyi klonlama girişimi -2603 koduyla reddedilir.
- Klonlamayı başlatın ve klonun adını belirtin.
- 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.
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ı
- Makineyi başlatın ve çalıştığını doğrulayın: VM listesinde State değerini ve kartta Node alanını kontrol edin.
- 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.
- 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.
- 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 edilmeli | Nereye bakılmalı | Beklenen sonuç |
|---|---|---|
| Makine gerekli düğümde çalışıyor | VM kartı, General properties bölümü | Node alanı seçilen düğümü gösterir |
| Makine çalışıyor | VM listesi, State sütunu | Durum "running" değerini gösterir |
| Anlık görüntüler mevcut | VM kartı, Snapshots tablosu | Anlık görüntü sayısı taşımadan önce kaydedilen sayıyla eşleşir |
| Diskler mevcut | VM kartı, Disks tablosu | Disk 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 üzerinden | Makinenin havuzu ve her diskin havuzu hedef havuzdur |
Bir sorun çıkarsa
| Ne görüyorsunuz | Neden | Ne yapmalı |
|---|---|---|
| Hata kodu -25300 | Taşıma yalnızca Cluster master rolü için kullanılabilir | Küme düzeyinde bir rolle oturum açın |
| Hata kodu -25306 | Makine ne durdurulmuş ne de "created" durumunda | Makineyi durdurun ve fiilen durmasını bekleyin |
| Hata kodu -25305 | Hedef havuz kaynakla aynı | Başka bir havuz seçin: aynı havuza taşıma yasaktır |
| Hata kodu -25307 | Hedef havuzun düğümü belirlenemedi | Havuz içe aktarılmamış olabilir. Storage Resources bölümünde Current node sütununu kontrol edin |
| Hata kodu -25304 | Makinenin düğümü belirlenemedi | Server Nodes bölümünde düğüm durumlarını kontrol edin |
| Hata kodu -25308 | Kullanılabilir aktarım bağlantı noktası yok | Diğer taşımaların tamamlanmasını bekleyin ve yeniden deneyin |
| Hata kodu -25310 | Taşıma döngüsü tamamlanmadı: yeniden kayıt başarısız oldu | Kartta makine ve disk durumlarını kontrol edin; neden belirlenene kadar yeni bir taşıma başlatmayın |
| Hata kodu -460 | Makine virtio-blk kullanıyor: yalnızca kendi havuzunun düğümünde başlayabilir | Yürütme düğümünü değiştiremezsiniz. Verileri gerekli düğümdeki bir havuza taşıyın |
| Hata kodu -459 | NVMe modundaki Windows ilk kurulumu tamamlamamış | Kurulumu havuzun düğümünde tamamlayın, ardından uzaktan başlatın |
| Hata kodu -458 | Yerleşim için ONLINE durumunda düğüm yok | Düğümleri yeniden hizmete alın veya bir düğümü elle seçin |
| Hata kodu -442, -443 | Var olmayan bir düğüm seçildi | Server Nodes tablosundaki bir düğüm numarasını kullanın |
| Hata kodu -457 | Makine zaten çalışıyor | Yeniden başlatmadan önce durdurun |
| Hata kodu -455 | Makine askıya alınmış | Devam ettirin, ardından başlatın |
| Hata kodu -409 | Makine 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, -415 | VDC'nin depolama, bellek veya çekirdek kotası tükenmiş | Kotayı boşaltın veya artırın |
| Hata kodu -440 | Aşı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 -452 | Uzaktan 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 -2603 | Klonun kaynağı durdurulmamış | Klonlamadan önce makineyi durdurun |
| Hata kodu -2605 | Makine, yazılım tanımlı bir yönlendirici (Edge) gibi bir servis tarafından yönetiliyor | Servis makineleri klonlanamaz |
| Hata kodu -3001, -429 | Bu tanımlayıcıya sahip bir makine sizin için görünür değil | Makineyi ve VDC'si için izinleri kontrol edin |
| Taşıma yanıt vermeden "takılmış" görünüyor | Sonuç, tüm döngüden sonra bir kez gelir | Bekleyin: süre disk boyutuna bağlıdır. Kopyalama ilerlemesi gösterilmez |
| Makine taşımadan sonra başlamıyor | Yerleşim değişti veya kaynaklar yetersiz | Kotaları 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.
- Taşıma ve klonlama işlemlerinin tam kümesi — "VM'leri taşıma ve klonlama".
- Makinenin yaşam döngüsü ve durumları — "Sanal makine yaşam döngüsü".
- Kapasiteye ve sağlık durumuna göre hedef havuz seçme — "Küme havuzlarını görüntüleme".
- Bir düğümü bakım için hizmet dışı bırakma — "Küme düğümlerini yönetme".
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.