Erkal Aslankara Sanallaştırma notlarım…

2May/124

Sanal dünyada disk alignment sorunu

Bu yazıda kısaca disk alignment sorunundan ve nasıl başa çıkacağımızdan bahsetmeye çalışacağım. Öncelikle problemin ne olduğuna ve kimleri etkilediğine açıklık getirelim.

Geleneksel olarak diskler üzerinde adresleme/formatlama işlemleri için Cylinder/Head/Sector(CHS) mantığı kullanılır. Disk üzerindeki plakalarda yapılan bu mantıksal adresleme işlemi üzerinden veriler yazılır ve okunur. Fakat günümüz teknolojisinde kurumsal ortamlarda disklerin yerini alan depolama üniteleri ile birlikle bu işlem de dikkat edilmesi gereken bazı farklılıklar mevcut. Depolama ünitelerinde tek bir diski bir sunucuya atamak yerine, diskler üzerinde oluşturduğumuz bir veri havuzundan belirlediğimiz bir miktarı (LUN) sunucuya atıyoruz. LUN aslında mantıksal olarak diski temsil eden kavramdır. Fakat bu mantıksal disklerin CHS yapıları storage ünitesinin yazılımı tarafından yine mantıksal olarak oluşturulurlar ve gerçekte arka planda her disk için ayrı ayrı adresleme yine depolama ünitesi tarafından yapılmaktadır.  Fiziksel disklerde standart olarak partition'ların 63. sektörden başlayacaktır çünkü sistemin açılması için gerekli MBR alanı 63 sektör kaplamaktadır. Geleneksel fiziksel diskler her zaman 512 byte bloklar bulunur. Ancak depolama üniteleri performans ve verimlilik gibi nedenlerden ötürü genellikle daha yüksek blok boyutları kullanırlar. (NetApp 4KB, EMC 64KB gibi) Hala kullanımda olan bir çok işletim sistemi ilk partition'ı oluştururken partition başlangıç sektörü olarak 63 seçerler. Bu işletim sistemlerine örnek olarak Windows 2003/2000/XP ve çeşitli linux türevleri verilebilir.

Buraya kadarki bilgilerin ışığında aşağıdaki probleme göz atalım. Örnek bir sistem düşünelim; Windows 2003 çalıştırıyor ve bir storage'daki LUN'u kullanıyor. Bu durumda aşağıdaki gibi bir durum oluşacaktır. 

Windows üzerinde oluşturulan NTFS partition'ın cluster'ları SAN'deki LUN'un disk chunk'larına bire bir örtüşmeyecektir. Aslında bunun sebebi partition'un 63. sektörden başlamasıdır. Örneğin yukarıdaki şekilde görülen 3. cluster'ın yazılması için 2 disk chunk'ına da yazılması gerekir ve bu ekstra disk IO'su demektir.

Araya bir de sanallaştırma katmanının girdiği durumda ise işlem biraz daha karışık hale gelir. VMFS'de partition ve sanal makinayı ayrı ayrı düşünmek gerekir.

Buradaki sorun daha büyüktür. Böyle bir yapıda 3. cluster'a yakından bakacak olursak.Bir cluster'ın yazılması için 3 adet chunk'a yazmak gerekmektedir. Çünkü hem VMFS partition LUN üzerine doğru align edilmemiş, hem de sanal makinanın diski içindeki NTFS doğru align edilmemiştir.

Oysaki beklenen yapı şöyle olmalıdır;

Burada her bir cluster tek bir chunk'a isabet etmektedir. Ek IO yükü oluşturacak bir durumdan söz edilemez.

Disk Alignment sorunu nasıl tespit edilir

Bu sorunu tespit etmek işletim sistemine göre farklılık gösterir. Öncelikle VMware tafarına bakıldığında VMFS3 ve VMFS5'de alignment sorunu yoktur. VMFS2 olarak oluşturulmuş ve upgrade edilerek devam edilmiş LUN'lar var ise bunlarda sorun vardır. En basit ve temiz yöntem bu LUN üzerindeki datastore'u silip yeni versiyon olarak tekrar oluşturmaktır.

Windows tarafında 2003 ve öncesinde bu sorun oluşmaktadır. Bunu tespit etmenin en kolay yolu msinfo32 uygulamasını çalıştırmaktır. Bu uygulama tüm Windows sürümlerinde bulunur ve "Start/Run" a "msinfo32" yazılarak başlatılabilir. Windows 2003 bir sistemden aldığım çıktı şu şekildedir. 

Bu uygulama ile Components\Storage\Disk altından her bir disk için "Partition Starting Ofset" değeri görülebilir. Windows Vista ve üstünde bu sorun giderilmiştir ve partition'lar 1MB'dan başlamaktadır.

Disk Alignment sorunu nasıl düzeltilir

Bunu düzeltmenin çok kolay bir yolu yoktur. Düzeltmek için izlenebilecek yöntemler şunlardır.

  • Storage üreticilerinin sağladığı araçları kullanmak (örn; mbralign)
  • Diskleri tekrar oluşturup doğru şekilde align etmek
  • Vmware vCenter Standalone Converter 5 ile P2v ya da V2V yapmak
  • vs..

Burada üzerinde durmak istediğim Windows 2003 tarafında yeni bir diskin nasıl doğru align edilerek oluşturulabileceği ve Converter kullanımı.

Windows 2003 ile bir diski doğru şekilde align etmek için partition'u diskpart komut satırı tool'u ile oluşturmalısınız. Aşağıda bir örnek görebilirsiniz.

Bu sayede partition doğru şekilde align edilmiş olacak.

Eğer bir Windows 2003 sunucuyu P2v yapıyorsanız artık bu işlem çok daha kolay. Sadece P2V değil elbette, hali hazırdaki sanal 2003 sunucularda da yukarıdaki anlattığım yöntemle yeni diskler oluşturup veriyi taşımak istemezseniz, Converter programı ile V2V yaparak bu sorunu giderebilirsiniz.

Converter 5 ile beraber hayatımıza giren bu kutucuk sayesinde oluşacak olan disklerdeki alingment sorunu otomatik olarak düzeltilecektir.

Fazla detaya girmeden anlatmaya çalıştığım bu yazım umarım faydalı olur.

Daha detaylı bilgi için;

http://media.netapp.com/documents/tr-3747.pdf

Yorumlar (4) Geri izlemeler (0)
  1. Bu konuyu Roma’da bile bu kadar net ve anlaşılabilir anlatamamışlardı. Eline emeğine sağlık..

  2. Olumlu görüşlerin için teşekkürler Gökhan.

  3. Hocam eline sağlık, çok teşekkürler bu değerli paylaşımın için.


Leave a comment

Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Geri izleme yok.