ESXi 6 ‘da USB disk’i datastore olarak göstermek
Merhaba,
Forumlarda aslında çok sık olarak karşılaşılan bir sorundur bu. Bir çok kişi ESXi host üzerine takılan bir USB’yi datastore olarak nasıl kullanılabileceğini soruyor. Aslında bu sorunun çoğunlukla cevabı hayır kullanamazsınız oluyor. vSphere 5 için aslında bu cevap kısmen doğru ancak imkansız değildi. vSphere 5’de bir USB’yi datastore olarak eklemek istediğinizde çoğu zaman başarısızlıkla sonuçlanıyordu çünkü vSphere 5 USB device seçiyordu.
vSphere 6 da bu durum biraz daha geliştirildi. Ancak işlemleri yaparken hala biraz karışık 🙂
ESXi host’umuza SSH ile bağlanıyoruz ve aşağıdaki komut ile USB arbitrator service’ini durduruyoruz. Bu servis sayesinde ESX/ESXi üzerine takılan bir USB device’i virtual machine’e direk gösterebiliyoruz. Tabi biz şuanda burada servisi durdurduğumuz için eğer passthrough usb kullanan virtual machine’ler var ise USB ile bağlantısını kaybedecektir.
# /etc/init.d/usbarbitrator stop
Eğer isterseniz aşağıdaki komut ile USB arbitrator service’ini reboot’dan sonra kalıcı olarak disable edebilirsiniz. Ancak tabi şuanda bu işlemi yapmanın bir zorunluluğu yok.
chkconfig usbarbitrator off
Datatstore olarak göstermek istediğiniz USB device’i ESXi host’a takıyoruz. ESXi host’a USB’yi taktıktan sonra artık bu USB’nin ESXi tarafındaki identifier’ini öğrenmemiz gerekiyor. Bunun için aşağıdaki komut ile USB Device’ı görüyoruz.
# ls /dev/disks/
Tanımlanan Device ID mpx.vmhba36 olarak gözüküyor. Şimdi GPT için bunu düzenleyeceğiz.
# partedUtil mklabel /dev/disks/mpx.vmhba36\:C0\:T0\:L0 gpt
Partition oluşturmak için start sector ‘un ve end sector’un buna bağlı olarakta device size’ı ve GUID’nin bilinmesi gerekiyor. Start sector herzaman 2048’dir. Eğer bir VMFS oluşturmak istiyorsanız bunun için AA31E02A400F11DB9590000C2911D1B8 isimli GUID’yi kullanıyoruz. GUID ile ilgili aşağıdaki KB’yi inceleyebilirsiniz.
http://kb.vmware.com/kb/1036609
# partedUtil getptbl /dev/disks/mpx.vmhba36\:C0\:T0\:L0 gpt 1947 255 63 31293440
Yukarıdaki komut ile çıkan ile end sector’u hesaplayacağız.
1947 * 255 * 63 – 1 = 31278554
End sector’u hesaplamak için yukarıdaki işlem yerine isterseniz aşağıdaki komutuda kullanabilirsiniz
# eval expr $(partedUtil getptbl /dev/disks/mpx.vmhba36\:C0\:T0\:L0 | tail -1 | awk '{print $1 " \\* " $2 " \\* " $3}') - 1 31278554
End Sector’u bulduğumuz için artık yeni bir VMFS partition’u oluşturabiliriz.
# partedUtil setptbl /dev/disks/mpx.vmhba36\:C0\:T0\:L0 gpt "1 2048 31278554 AA31E02A400F11DB9590000C2911D1B8 0"
VMFS Partition’u oluşturduktan sonra artık Add storage butonuna basarak datastore’u ekleyebilirsiniz veya aşağıdaki komut ile VMFS5 ile formatlayıp direk kullanıma hazır hale getirebilirsiniz.
# vmkfstools -C vmfs5 -S USB Datastore mpx.vmhba36\:C0\:T0\:L0:1
Gördüğünüz gibi datastore olarak kullanabilirsiniz. Ancak hiçbir zaman burayı gerçek bir datastore gibi düşünüp içerisine production makinalarınızı taşımayın. Nihayetinde arka planda USB arabiriminden çalışan basit bir device var. Bunun bozulması durumunda ciddi anlamda sorunlar çıkacaktır. Hangi amaç ile kullanabilirsiniz peki? Mesela bu datastore’un içerisine clone’larınızı alabilir daha sonra gidip başka bir ESXi’a taşıyabilirsiniz. Bu USB artık VMFS5 ile formatlandığı için her ESXi 6 bu USB’yi direk görecektir.
Umarım faydalı olmuştur.
İyi çalışmalar.
Merhabalar,
Makale için teşekkürler. Çok faydalı oldu.Naçizane bir düzeltme yapmak isterim.
# vmkfstools -C vmfs5 -S USB Datastore mpx.vmhba36\:C0\:T0\:L0:1
Yukarıdaki satırda USB Datastore olarak verilen isim, arasındaki boşluktan dolayı farklı bir parametre olarak göründüğü için komut hata veriyor. Ben sorunu aşağıdaki gibi bir düzeltme ile çözdüm.Aradaki boşluğu kaldırıp da yazabilirsiniz.
# vmkfstools -C vmfs5 -S USB-Datastore mpx.vmhba36\:C0\:T0\:L0:1
Emeğinize sağlık.
Köksal YILMAZ
Merhaba,
Elinize sağlık, bilgi için teşekkürler 🙂
Merhabalar ben yapamadım bu konuda bana yardımcı olabilir misiniz acaba sizlerden ricam?