SC depolama müşteri bildirimi: Linux büyük GÇ boyutları, Iscsı disk kullanılabilirliğini etkileyebilir
Summary: Son çekirdek değişikliği, GÇ limitlerinin blok aygıtlarda hesaplanma biçimini değiştiren Oracle Enterprise Linux dağıtımına kullanılmaya başlanmıştır.
Symptoms
Uyarı:
Bu değişiklikler aşağıda özetlenmiştir.
Oracle Linux 6/7:
ELSA-2015-3098-ayrıştırılamayan kurumsal çekirdek güvenlik ve Bugfix Update
http://linux.oracle.com/errata/ELSA-2015-3098.html
Piyasaya Sürülme Tarihi/ 2015-11-13
[3.8.13-100.el6uek/3.8.13-100.el7uek]
Block: artifical max_hw_sectors Cap 'i çıkarın (Christoph Hellwig) [Orabug: 21511611]
Oracle Linux 5:
ELBA-2015-3076-ayrıştırılamayan kurumsal çekirdek hata onarımı güncellemesi
http://linux.oracle.com/errata/ELBA-2015-3076.html
Piyasaya Sürülme Tarihi/ 2015-08-27
[2.6.39-400.260.1.el5uek]
Block: artifical max_hw_sectors Cap 'i çıkarın (Joe Jin) [Orabug: 21455630]
Genel Bakış:
Bir Linux sisteminde bulunan her blok aygıta bir kuyruk dizini ayrılır ( /sys/Block/xxx/Queue/). Bu dizin, çeşitli yapılandırma dosyaları içerir. Bu dosyaların ayrıntıları şu konumda bulunabilir:
https://www.kernel.org/doc/Documentation/block/queue-sysfs.txt
Bu CSTA ile ilgili iki parametre:
max_hw_sectors_kb
Tek bir veri aktarımında desteklenen maksimum kilobayt sayısı.
Bu parametre salt okunurdur ve SCSI sorgulama yanıtı üzerinden hedef depolama aygıtı tarafından sağlanır. Storage Center Işletim sistemi (SCOS) içindeki SCSI hedef alt sistemi şu anda sıfır ile yanıt veriyor. Bu sınır olmadığını gösterir, bu nedenle sunucu bu değeri o Linux çekirdek sürümünde (32 MB) izin verilen maksimum değere ayarlar.
max_sectors_kb
Blok katmanının bir dosya sistemi isteği için izin verilen maksimum kilobayt sayısı.
Bu değer oku-yaz ' dır. Bu değer max_hw_sectors_kb değerinden küçük veya eşit olmalıdır .
2.6.39-400.260.1. el5uek, 3.8.13-100. el6uek ve 3.8.13-100. el7uek ' de kullanılmaya başlanan Oracle Linux çekirdeğindeki değişiklikler max_sectors_kb hesaplanma biçimini değiştirdi. Önceki çekirdek sürümlerinde, değer her zaman 512 KB olarak ayarlanmıştır. Bu değişiklikten sonra, max_sectors_kb değeri max_hw_sectors_kb değeri olarak ayarlanır . Bu, belirli bir blok aygıtına 512 KB 'den 32 MB 'ye kadar tek bir GÇ aktarımının maksimum boyutunu artırmıştır.
Bu değişiklik, ~ 8 GB 'den büyük GÇ boyutları için Storage Center 10Gb Iscsı sürücüsü ile ilgili bir sorun ortaya çıkarmıştır. Büyük GÇ 'yi üreten sunucu işlemi askıda kalabilir veya büyük GÇ boyutu nedeniyle birim kullanılamayabilir. Buna ek olarak, 10 GB Iscsı sürücüsü sorunu, denetleyicinin diğer Storage Center alt sistemleri tarafından gerekli belleği kullanmasına neden olabilir ve bu da daha büyük bir etkiye neden olabilir.
Geçici Çözüm:
Bu sorunu önlemek için, her bir blok aygıt için max_sectors_kb Linux sunucu üzerinde dinamik olarak değiştirilmelidir. Aşağıda, bir Linux sistemine bağlı çok yollu blok aygıt için örnek komutlar verilmiştir:
#mpath1:
Echo 512 >/sys/Block/DM-6/Queue/max_sectors_kb
Echo 512 >/sys/Block/SDC/Queue/max_sectors_kb
Echo 512 >/sys/Block/SDE/Queue/max_sectors_kb
Echo 512 >/sys/Block/SDK/Queue/max_sectors_kb
Echo 512 >/sys/Block/SDM/Queue/max_sectors_kb
Bu değişiklikler, yeniden başlatmalar üzerinden kalıcı değildir. Belirli bir sunucu önyükleme yaptığında, tüm Iscsı blok aygıtları için bu parametreyi değiştirecek bir init komut dosyası uygulanabilir. Bu kalıcılığı her müşteri ortamı için nasıl uygulayacağınızı öğrenmek için lütfen bir Linux yöneticisine veya Oracle desteğine başvurun.
Aşağıdaki komut dosyası (udev kuralı) , her iSCSI takılı Compellent biriminin max_sectors_kb 512 KB ' ye ayarlayacaktır. Lütfen bu komut dosyasını kendi takdirinde kullanın ve herhangi bir garanti veya garanti zımni değildir. Komut dosyasını sınamanız önerilir, ancak sorun olmadan çalışır.
Aşağıdaki içeriklere sahip/etc/udev/rules. d/ dizininde 99-cml-iSCSI. Rulesdosyasını yaratın :
[root@localhost/] # cat/etc/udev/kural.d/99-cml-iscsi.Rules
# Max_sectors_kb Dell Storage Center Iscsı eşlenmiş birimleri için değişiklik yapma
ACTION = = "Ekle", \
ENV = = "*-iSCSI-* Compellent *", \
RUN + = "/bin/sh-c" Echo 512 >/sys $ DEVPATH/Queue/max_sectors_kb ' "
Etkilenen sürümler:
Tüm SCOS sürümleri, 10 GB Iscsı arabirimlerini kullanan etkilendi. Fiber Kanal, 1 GB Iscsı ve FCoE etkilenmez.
Çözüm:
Max_sectors_kbsorun, 7.01.12, 7.02.01 ve 7.03.01 ve daha yüksek SCOS sürümlerinde giderilmiştir.
10 GB Iscsı sürücüsü ile bellek tüketimi sorununu gidermek için SCOS 6.07.03 ve üzeri bir değişiklikler mevcuttur.