Ana içeriğe geç

Bir düğümde planlı disk değişimi

Planlı değişim, disk hâlâ çalışırken gerçekleştirilir: disk hizmet ömrünün sonuna gelmiştir, modeli artık desteklenmemektedir veya yaklaşan bir arızanın belirtilerini göstermektedir. Acil değişimden önemli bir noktada ayrılır: sırayı bir arıza değil, siz belirlersiniz. Bu, yerine geçecek bir disk hazırlayabileceğiniz, doğru kasadaki göstergeyi yakabileceğiniz ve havuzu bir dakika bile yedekliliksiz bırakmadan diski değiştirebileceğiniz anlamına gelir.

vStack Center modelinde bir diskin birbirinden bağımsız üç özelliği vardır. Bunları karıştırmak bu prosedürdeki hataların başlıca kaynağıdır. Hiçbiri diğerinden çıkarılamaz.

ÖzellikNerede görünürNe anlama gelirNeyle değişir
SağlıkDisk props sekmesindeki Status sütunuDiskin fiili durumuFiili koşullara göre düğüm
RolYalnızca API üzerindenDisk rolü: boş, bölümlenmiş, havuz üyesi, yedekDiskin sorgulanması, yedek olarak işaretlenmesi, yedek etiketinin kaldırılması, değişim
Kümede çevrimiçiYalnızca API üzerindenDisk küme fabric'inde kullanıma sunulmuştur ve tüm düğümlere görünürdürDiskin kümede çevrimiçi yapılması ve kümeden kaldırılması

Değişimin kendisi tek bir işlemdir. Diski kasadan "çıkarmaz": havuzu yerine geçecek aygıta geçirir ve resilver işlemini başlatır. Eski disk, havuz artık onu kullanmadığında daha sonra fiziksel olarak çıkarılır.

Göstergelerin yakılması dışındaki fiziksel disk işlemleri web arayüzünde kullanılamaz. Bir yönetici, bir diski değiştirmek, yedek olarak işaretlemek ve kümeden kaldırmak için API'yi kullanır — API başvurusuna bakın. Bu prosedürde arayüzün farklı bir amacı vardır: diski, kasadaki konumunu, havuzun sağlık durumunu ve resilver durumunu göstermek.

Değişim, disk alt sistemindeki en tehlikeli işlemdir; bu nedenle veri kaybına karşı kendi koruması vardır. vStack Center komutu göndermeden önce düğüme yerine geçecek diskin fiili rolünü sorar ve komutu yalnızca yerine geçecek disk boşsa, yani yedek veya kullanılmıyorsa gönderir. Yerine geçecek disk kullanımdaysa, durumu belirlenemiyorsa veya arızalı aygıt ile yeni aygıt aynıysa, değişim komut düğüme gönderilmeden önce reddedilir. Aynı havuzda eşzamanlı değişimlere izin verilmez.

Tüm disk alt sistemi komutları eşzamansızdır: kabul edilen bir komut "düğüm aracısına iletildi" anlamına gelir. Fiili sonuç düğümün yanıtıyla gelir ve disk listesini veya havuz durumunu bir sonraki okuyuşunuzda görünür.

Ön koşullar​

  • Tüm fiziksel disk işlemleri için gerekli olan Cluster master rolü (role_id=1);
  • feature.physical_disc_management bayrağı: bu bayrak olmadan disk alt sisteminin tamamı kullanılamaz. Bayrak küme seçeneklerindedir;
  • Aynı düğümde yerine geçecek bir disk: boş veya zaten yedek olarak işaretlenmiş. Başka bir düğümdeki bir disk kullanılamaz; değişim tek bir düğüm içinde çalışır;
  • Havuz adı ve değiştirilecek aygıtın yolu biliniyor olmalıdır;
  • Havuzda başka bir değişim devam etmiyor olmalıdır: aynı anda havuz başına yalnızca bir değişim;
  • vStack Center 3.0.5 sürümü: fiziksel disk işlemleri bu sürümde sunuldu.

Adım 1. Diski ve kasadaki konumunu bulun​

Diski üç şekilde tanımlayın: disk listesindeki kaydıyla, aygıt yoluyla (değişim komutu için gereklidir) ve doğru diski çıkarmanız için kasadaki konumuyla.

  1. Provider Data Center → Server Nodes bölümünü açın ve düğümü seçin, ardından Disks bölümünü genişletin. Havuza göre filtrelenmiş aynı liste, havuz kartının Pool Disks bölümünde de bulunur. Havuzu Storage Resources bölümündeki ZFS pools tablosundan açın.

  2. Sekmeler arasında geçiş yapın: sekmeler aynı listenin farklı görünümlerini gösterir. ID sütunu satırları tüm sekmelerde birbirine bağlar ve tablonun üzerinde arama kullanılabilir (Search in table).

    SekmeSütunlarBu adımdaki amacı
    Disk propsID, Model, Size (GB), StatusModeli, boyutu ve sağlık durumunu belirlemek
    ZFS propsPool name, Vdev_pool_name, Vdev_guid, Vdev_pool_guidDiskin doğru havuza ait olduğundan emin olmak
    PlacementEnclosure_device, Enclosure_id, Dev_index, DeviceKasayı ve yuvayı bulmak
    LED on panelLed_fault, Led_locateGöstergenin yandığını kontrol etmek
    TimestampsCreated, Last_seenDisk kaydının ne kadar güncel olduğunu belirlemek
  3. Değişim komutu için düğümü ve Device değerini, göstergeyi yakmak için de Enclosure_device ve Dev_index değerlerini kaydedin. Dolu Pool name ve Vdev_pool_name alanları, diskin boş değil bir havuz üyesi olduğunu doğrular.

Bu tablolar diskin rolünü veya "kümede çevrimiçi" bayrağını göstermez; bunları API sağlar. Değişimden önce bunları kontrol edin: hangi diskin yerine geçecek disk olarak kullanılabileceğini rol belirler.

Adım 2. Diskin kasa göstergesini yakın​

Yanlış yuvayı seçmek ikinci bir diske mal olur; bu nedenle sunucu odasına gitmeden önce göstergeyi yakın. İki gösterge vardır: konum ("bu disk") ve arıza.

  1. Düğüm kartının Disks bölümünde Front view veya Inner view sekmesine gidin. Her diskin orada konum ve arıza göstergesi düğmeleri vardır.
  2. Değiştirilecek disk için konum göstergesini açın.
  3. Göstergenin gerçekten yandığını LED on panel sekmesinde Led_fault ve Led_locate sütunlarında kontrol edin.

Aynı işlemi API üzerinden de gerçekleştirebilirsiniz. Bu durumda kasa adını Enclosure_device sütununda gösterildiği gibi değil, /dev/sesN biçiminde belirtin. Başka bir biçim -24307 koduyla, bilinmeyen bir kasa ise -24316 koduyla reddedilir.

Adım 3. İşlemden önce havuzun sağlık durumunu kaydedin​

Değişiklik yapmadan önce başlangıç durumunu kaydedin; aksi takdirde değişimden sonra karşılaştıracak bir şeyiniz olmaz.

  1. Provider Data Center → Storage Resources bölümünü açın. ZFS pools tablosu GUID, Name, Health, Consuming, Scrubbing, Resilvering, Current node ve Capacity (RAW) sütunlarını içerir.
  2. Diskin değiştirildiği havuz için Health, Resilvering ve Current node değerlerini kaydedin. Planlı değişimi yalnızca sağlıklı bir havuzda başlatın. Bozulmuş bir havuz, "Bozulmuş bir havuzu kurtarma" sayfasında açıklanan farklı bir prosedür gerektirir.
  3. Havuzu açın ve Properties bölümünü kontrol edin: Capacity, Provisioned, Used ve Free, resilver için yeterli alan olup olmadığını gösterir.

Havuz tablosu ve sayfası vStack Center veritabanından okur ve en son kaydedilen durumu gösterir. API, her aygıtın durumuyla birlikte havuzun güncel ağacını sağlar. Arayüzdeki bilgiler fiili durumdan farklıysa buna ihtiyacınız olacaktır.

Adım 4. Yerine geçecek diski hazırlayın​

Yerine geçecek disk boş olmalıdır; aksi takdirde koruma komutu engeller. "Boş", "spare" veya "unused" rolü anlamına gelir. Veritabanındaki rol eski olabilir; bu nedenle önce düğümü doğrudan sorgulayarak rolü güncelleyin.

  1. Adayları düğüm kartının Disks bölümünde bulun: ZFS props sekmesinde boş bir diskin Pool name ve Vdev_pool_name alanları boştur. Size (GB) değerini kontrol edin: yerine geçecek disk en az değiştirilen disk kadar büyük olmalıdır.
  2. Adayın rolünü düğümü API üzerinden doğrudan sorgulayarak güncelleyin: düğüm disk hakkında aygıt yoluna göre bilgi verir ve vStack Center güncel rolü kaydeder. Henüz envanteri çıkarılmamış bir disk için sorgu hiçbir şeyi değiştirmez; önce o diskin envanterini düğüm sayfasından çıkarın.
  3. Yerine geçecek disk yalnızca boşsa olduğu gibi bırakabilirsiniz: değişim hem yedek hem de kullanılmayan diskleri kabul eder. Düğümde belirlenmiş bir yedek tutuyorsanız, diski API üzerinden yedek olarak işaretleyin. Bu yıkıcı bir işlemdir: düğüm diske bir servis etiketi yazar; bu nedenle etiketleme zorlanmadıkça canlı veri içeren bir diskte işlemi reddeder.
  4. Disk listesini yeniden okuyun ve yerine geçecek diskin Pool name alanının hâlâ boş olduğundan emin olun.

Adım 5. Diski değiştirin​

Şimdi tek bir komut verin. Bir yönetici bu komutu API üzerinden gerçekleştirir. Tüm denetimler komut düğüme gönderilmeden önce yapılır; bu nedenle geçersiz bir çağrı diske ulaşmaz.

Şunları hazırlayın:

  • Her iki diski de içeren düğüm;
  • Değişimin yapıldığı havuzun adı;
  • Device sütunundan değiştirilecek aygıtın yolu;
  • Değiştirilecek aygıtın yolundan farklı olması gereken yerine geçecek diskin yolu.

Kabul edilen bir komut yalnızca "düğüme gönderildi" anlamına gelir. Fiili sonuç düğümün yanıtıyla gelir. Başarılı olursa yeni aygıt havuz üyesi olarak işaretlenir. Başarısız olursa bir hata döndürülür ve eski disk otomatik olarak arızalı olarak işaretlenmez: rolü değişmeden kalır.

Adım 6. Resilver işlemini bekleyin​

Havuz yedekliliği kendisi geri yükler; vStack Center yalnızca süreci gösterir.

  1. Storage Resources bölümünü açın ve diskin değiştirildiği havuz için Resilvering ve Health sütunlarını izleyin. Resilvering sütunundaki 1 değeri, havuzun değişimden sonra yedekliliği geri yüklediği anlamına gelir.
  2. Resilvering sıfıra döndüğünde ve Health sağlıklı kaldığında değişim tamamlanmıştır.
  3. Havuz üyeliğini doğrulayın: havuz kartında, Pool Disks bölümünün Placement sekmesinde yerine geçen disk eski diskin yerinde görünmelidir.

vStack Center ilerlemeyi yüzde olarak göstermez; yalnızca işlemin devam edip etmediğini gösteren bir gösterge vardır. Süreyi Properties bölümündeki havuz boyutundan tahmin edin.

Adım 7. Eski diskin bağlantısını kesin ve diski çıkarın​

Bir disk kümede çevrimiçi olduğu sürece küme onu kümenin bir parçası olarak kabul eder. Fiziksel olarak çıkarmadan önce bu bayrağı temizleyin. İşlem API'yi kullanır ve LUN'u fabric'ten kaldırır. Diski seri numarasıyla (tercih edilir) veya aygıt yoluyla belirtin.

uyarı

Bir diski etkin bir havuzun üyesiyken kümeden kaldırmayın: havuz bozulmuş duruma düşer. Havuzun eski diski değil yerine geçen diski kullandığından emin olmak için Pool Disks bölümünü kontrol edin. Düğüm canlı veri yerleşimlerini korur ve işlemi reddeder, ancak kontrol etmek yerine bu reddedilmeye güvenmemelisiniz.

Çağrıdan sonra disk listesini yeniden okuyun: diskin "kümede çevrimiçi" bayrağı temizlenmiştir. Artık diski fiziksel olarak çıkarabilirsiniz.

İşin tamamlanması​

  1. Her iki göstergeyi de söndürün: düğüm kartı → Disks bölümü → Front view veya Inner view sekmesi. Sonucu LED on panel sekmesinde kontrol edin.
  2. Yedek disk rezervini geri yükleyin. Yerine geçen disk artık havuzdadır ve düğümde yedek kalmamıştır: yeni bir diski kümede çevrimiçi yapın ve API üzerinden yedek olarak işaretleyin.
  3. Fiziksel değişikliklerden sonra envanteri güncelleyin: ses sınıfı, ardından cam için bir düğüm envanteri çalıştırın. Aksi takdirde disk listesi, çıkarılan disk için eski bir Last_seen değerine sahip bir kaydı tutmaya devam eder.
  4. Son durumu ZFS props sekmesinde doğrulayın: yeni havuz üyesinin Pool name ve Vdev_pool_name alanları doludur, yedeğin Pool name alanı ise boştur.

Sonucun doğrulanması​

Ne kontrol edilmeliNereye bakılmalıBeklenen sonuç
Havuz yeni diski kullanıyorHavuz kartı, Pool Disks → PlacementYerine geçen disk eski diskin yerini almış
Resilver tamamlanmışStorage ResourcesResilvering = 0, Health sağlıklı
Yeni disk havuz üyesi olarak kaydedilmişPool Disks → ZFS propsYerine geçen diskin Pool name ve Vdev_pool_name alanları dolu
Eski disk kümeden kaldırılmışAPI üzerinden"Kümede çevrimiçi" bayrağı temizlenmiş
Göstergeler sönükDisks bölümü → LED on panelLed_fault ve Led_locate kapalı
Yedek disk rezervi geri yüklenmişAPI üzerindenDüğümde "spare" rolüne ve boş Pool name alanına sahip bir disk var

Bir sorun çıkarsa​

Ne görüyorsunuzNedenNe yapmalı
Hata kodu -24907Yerine geçecek disk boş değil: rolü ne "spare" ne de "unused"Diski boşaltın veya başka bir disk seçin; düğümü doğrudan sorgulayarak rolü güncelleyin
Hata kodu -24908Yerine geçecek diskin durumu belirlenemedi: düğüm yanıt vermedi veya istek zaman aşımına uğradıDeğişim kasıtlı olarak reddedildi. Düğüme bağlantıyı kontrol edin ve diski yeniden sorgulayın
Hata kodu -24905Değiştirilecek aygıt ile yeni aygıt aynıFarklı aygıtlar belirtin
Hata kodu -24906Bu havuzda zaten bir değişim devam ediyorMevcut değişimin bitmesini bekleyin: havuz başına bir değişim
Hata kodu -24902Havuz boş veya düğümde mevcut değilHavuz adını ZFS pools tablosundaki Name sütunuyla karşılaştırın; havuz bu düğümde içe aktarılmamış olabilir
Hata kodu -24903Değiştirilecek aygıtın yolu belirtilmediDevice sütunundaki yolu kullanın
Hata kodu -24904, -24502, -24402, -24803Aygıt yolu biçimi doğrulaması başarısız oldu/dev/daN biçiminde bir yol kullanın
Hata kodu -24504Diskte zaten yıkıcı bir işlem devam ediyorDüğümün yanıtını bekleyin: aynı diskte iki yıkıcı işlem çalışamaz
Hata kodu -24503Disk zaten yedek olarak işaretlenmişYeniden denemeye gerek yok; diskin rolünü kontrol edin
Hata kodu -24603Disk yedek olarak işaretlenmemiş, dolayısıyla kaldırılacak etiket yokEtiketi kaldırmadan önce diskin rolünü kontrol edin
Hata kodu -24307Hatalı kasa adı biçimiEnclosure_device sütununda gösterildiği gibi değil, /dev/sesN biçiminde bir ad kullanın
Hata kodu -24316Kasa bulunamadıPlacement sekmesinde Enclosure_id ve Enclosure_device değerlerini kontrol edin; farklıysa envanteri yeniden toplayın
Hata kodu -24311, -24313, -24315Gösterge değeri ne 0 ne de 1 veya hiçbir gösterge belirtilmedi0 veya 1 değerine sahip en az bir gösterge belirtin
Hata kodu -24802Ne seri numarası ne de disk yolu belirtildiEn az bir disk tanımlayıcısı belirtin
Hata kodu -24901, -24501, -24601, -24801, -24401, -24301, -24201feature.physical_disc_management bayrağı devre dışıKüme seçeneklerinde fiziksel disk yönetimini etkinleştirin
Hata kodu -403İşlem yalnızca Cluster master rolü için kullanılabilirKüme düzeyinde bir rolle oturum açın
Komut kabul edildi, ancak disk listesinde hiçbir şey değişmediKomut yalnızca düğüm aracısına iletildi; sonuç daha sonra gelirEkranları yeniden açın; verilerin ne kadar güncel olduğunu görmek için Last_seen değerini kontrol edin
Diski yedek olarak işaretleme başarılı oldu, ancak rolü değişmediDiskin henüz envanteri çıkarılmamış, dolayısıyla rolün saklanacağı bir kayıt yokcam sınıfı için bir düğüm envanteri çalıştırın, ardından yeniden deneyin
Disk çıkarıldıktan sonra havuz DEGRADED durumuna geçtiDisk, havuz yerine geçen diske geçmeden önce çıkarıldıDiski kasaya geri takın ve kurtarma prosedürünü izleyin
Değişim başarılı oldu, ancak hâlâ yedeklilik yokHavuz yerine geçen diski kullanıyor ve düğümde yedek kalmadıYeni bir diski kümede çevrimiçi yapın ve yedek olarak işaretleyin

Kısıtlamalar​

vStack Center'dan bir havuz bütünlük denetimi (scrub) başlatamazsınız; bu işlem kullanılamaz. Scrubbing sütunu yalnızca düğümde başlatılmış bir sürecin çalışıp çalışmadığını bildirir.

vStack Center ayrıca bir havuza yeni bir aygıt olarak disk ekleyemez. Bir diski kümede çevrimiçi yapmak onu düğümlere görünür kılar, ancak havuz üyeliği düğümde değiştirilir. Mevcut bir havuz üyesini değiştirmek, vStack Center'dan kullanılabilen tek havuz üyeliği işlemidir.

API, havuzun autoreplace özelliğini sağlar. Bu özellik devre dışıysa, yedek disk otomatik olarak devreye alınmaz ve değişimin her zaman bir yönetici tarafından başlatılması gerekir.

Ayrıca bkz.​

API yöntemleri​

Bu sayfadaki API işlemleri: pd-list, pd-status-map, pd-led, pd-info, pd-spare, pd-unspare, pd-replace, pd-use, pd-unuse, pd-pools-status, pool-map-by-guid, pools-get, node-inventory — API başvurusuna bakın.