PowerFlex: PowerFlex SDC Sürücüsünün İsteğe Bağlı Derlemesi
Summary: Bu bilgi tabanlı makalede, Linux sistemlerde PowerFlex SDC sürücüsünün isteğe bağlı derlemesinin nasıl etkinleştirileceği açıklanmaktadır.
Instructions
Bu özellik, farklı bir çekirdek için önceden derlenmiş bir SDC sürücüsünün yüklenememesine neden olabilecek Linux çekirdeğindeki Uygulama İkili Arabirimi (ABI) değişikliklerine uyum sağlamak için tasarlanmıştır.
Tarihsel olarak, Linux için bir SDC kurulum paketi (RPM/DEB), bu Linux dağıtımının çeşitli çekirdekleri için birkaç SDC çekirdek modülü içeriyordu. Sık çekirdek güncellemeleri yayınlayan Ubuntu gibi dağıtımlara yükleme yapan kullanıcılar için, SDC hizmetini Dell'in uzak SDC sürücüleri deposuna bağlanacak ve buradan bir SDC indirmeyi deneyecek şekilde ayarlama seçeneği vardır.
Yeni özellik ile kullanıcılar, sürücünün deposunda eşleşen bir SDC'nin kullanılabilirliğine güvenmeden, çalışan çekirdekleri için SDC sürücüsünün mükemmel bir eşleşmesini derleyebilir.
Hedef kitle: Güvenlik nedenleriyle çekirdeklerini sık sık güncelleyen ve özel özel çekirdekler çalıştıran kullanıcılar bu özellikten yararlanabilir.
Önkoşullar
Derleme prosedürünün başarılı olması için SDC hizmetinin ana bilgisayarına aşağıdaki paketlerin yüklenmesi gerekir:
- GNU C derleyicisinin (GCC) en son sürümü, GCC
- GNU make(1).
- Çalışan çekirdek için çekirdek geliştirme paketi. Bu paket genellikle aşağıdaki adlarla kullanılabilir:
- RPM paket yöneticisini kullanan dağıtımlar için kernel-devel. (Red Hat, SUSE, vb.)
- Debian paket yöneticisini kullanan dağıtımlar için linux başlıkları (Debian, Ubuntu, vb.)
Otomatik isteğe bağlı derleme
SDC sürücüsünün otomatik, isteğe bağlı derlemesine izin vermek için ana bilgisayarın yukarıdaki Önkoşullar bölümünde listelenen tüm önkoşulları karşılaması gerekir. SDC sürücüsü açılırken aşağıdaki koşulların tümü karşılanırsa SDC hizmeti SDC sürücüsünü derlemeye çalışır:
-
Sürücü önbelleğinde çalışan çekirdekle eşleşen bir SDC kullanılamıyor.
Sürücü önbelleği hakkında ayrıntılı bilgi için aşağıdaki Sürücü Önbelleği bölümüne bakın. -
Adlı bir dosya
/etc/emc/scaleio/scini_sync/.build_sciniVar.
Dosyanın içeriği yok sayılır. Ancak, kullanıcılar gelecekteki olası geliştirmeler için boş tutmalıdır.
Dosya, birtouch(1)yapılandırmalısınız.
Manuel derleme
SDC sürücüsü, derleme ana bilgisayarı yukarıdaki Önkoşullar bölümünde listelenen tüm önkoşulları karşılamalıdır.
SDC sürücüsünü manuel olarak derlemek için şu adımları izleyin:
-
Derleme paketini sürücü önbelleğindeki dizininden geçici bir dizine kopyalayın. Paketin konumu, PowerFlex sürümüne ve Linux dağıtımına bağlıdır.
Örneğin, Red Hat Enterprise Linux 9 tabanlı dağıtımlar için PowerFlex 3.6.3 SDC paketi şöyledir:/bin/emc/scaleio/scini_sync/driver_cache/RHEL9/3.6.3000.128/Dell-PowerFlex-scini_builder-3.6.3000.128.x86_64.tgz
Sürücü önbelleği hakkında ayrıntılı bilgi için aşağıdaki Sürücü Önbelleği bölümüne bakın. -
Geçici dizine gidin ve derleme paketini ayıklayın.
Example:tar xzf Dell-PowerFlex-scini_builder-3.6.3000.128.x86_64.tgz
-
Şunu çalıştırın:
build_driver.shkomut dosyası, ayıklanan içeriğin en üst düzeyinde bulunur. Bağımsız değişken olmadan komut dosyası, çalışan çekirdek için sürücüyü derlemeye çalışır.
Farklı bir çekirdek için derlemek üzere, o çekirdeğin başlık dizinlerinin yolunu "-o" ve "-s" komut satırı bağımsız değişkenleri.
Çağırma hakkında daha fazla bilgi için şunu çalıştırın:build_driver.sh -h
-
Derleme işlemi çıktısı standart çıktıya yazdırılır.
Başarılı bir derlemeden sonra, ortaya çıkan SDC sürücü dosyası scini.ko şu adreste bulunabilir:./ini/scini.ko. -
Sürücü dosyasını derleme ana bilgisayarından hedef SDC ana bilgisayarına, sürücü önbelleğindeki derleme paketiyle aynı konumun altında hedef çekirdek sürümüyle eşleşen bir dizine kopyalayın.
Örneğin, 5.14.0-362.24.1.el9_3.x86_64 çekirdek sürümüyle uyumlu bir sürücü için sürücü dosyasının hedef yolu/bin/emc/scaleio/scini_sync/driver_cache/RHEL9/3.6.3000.128/5.14.0-362.24.1.el9_3.x86_64/scini.ko.
Additional Information
Sürücü Önbelleği
Belirli bir çekirdek için başarıyla derlenmiş bir SDC sürücüsü, sürücü önbelleğinin uygun dizinine kopyalanır ve derlemesi yeniden tetiklenmez.
Sürücü önbelleğinin konumu /bin/emc/scaleio/scini_sync/drive_cache.
Derleme Günlüğü
Otomatik isteğe bağlı derleme etkinleştirildiğinde, tüm derleme günlükleri /bin/emc/scaleio/scini_sync/driver_build.log'dir.
Başarılı bir derleme, aşağıdakine benzer mesajlarla sona erer:
make: Entering directory '/usr/src/linux-headers-5.15.0-30-generic' "Following additional compilation's conditions are defined:" BLK_MQ_HEADER BLK_DEV_MAX_SEGMENTS SOCKET_HAS_NET_IN_CREATE BIO_BI_BDEV BIO_BI_STATUS BLK_QUEUE_FLAG_FUNCS BLK_INITIALIZE_RMQ_FN WAIT_QUEUE_ENTRY_T HAS_SCSI_REQUEST HAS_SCSI_REQ HAS_SCSI_CMND HAS_SCSI_IOCTL HAS_SCSI_IOCTL_WITH_GENDISK HAS_QUEUE_FLAG_DISCARD HAS_DISK_LIVE_IN_GENHD CC [M] /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_main.o CC [M] /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_mos.o CC [M] /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_net.o CC [M] /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_ioctl.o CC [M] /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_blk_io.o CC [M] /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_blk_dev.o LD [M] /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.o "Following additional compilation's conditions are defined:" BLK_MQ_HEADER BLK_DEV_MAX_SEGMENTS SOCKET_HAS_NET_IN_CREATE BIO_BI_BDEV BIO_BI_STATUS BLK_QUEUE_FLAG_FUNCS BLK_INITIALIZE_RMQ_FN WAIT_QUEUE_ENTRY_T HAS_SCSI_REQUEST HAS_SCSI_REQ HAS_SCSI_CMND HAS_SCSI_IOCTL HAS_SCSI_IOCTL_WITH_GENDISK HAS_QUEUE_FLAG_DISCARD HAS_DISK_LIVE_IN_GENHD MODPOST /tmp/PowerFlex_driver_build_hpoM6l/ini/Module.symvers CC [M] /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.mod.o LD [M] /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.ko BTF [M] /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.ko Skipping BTF generation for /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.ko due to unavailability of vmlinux make: Leaving directory '/usr/src/linux-headers-5.15.0-30-generic' 02-Apr-2024 11:46:48 INFO: Success.
SDC başlatma kapsayıcısı
SDC başlatma kapsayıcısı, özelliği kullanmak için önceden yapılandırılmış olarak gelir. Gcc'yi içerir ve paketler yapar ve /etc/emc/scaleio/scini_sync/.build_scini dosya mevcut. Ancak, derlemelerin başarılı olması için, ana bilgisayar çekirdeğinin çekirdek başlıkları dizininin kapsayıcıya, aşağıdakilere eşlenmesi gerekir: /usr/src. Örneğin, kapsayıcıyı docker ile manuel olarak çalıştırmak için ana bilgisayara doğru kernel-devel paketini kurduktan sonra şunu ekleyin: -v/usr/src:/usr/src Çekirdek başlıkları dizininin derleme komut dosyası tarafından kullanılabilmesi için komut satırına.
Sınırlama
Ana bilgisayarın Linux dağıtımında kullanıma sunulan GCC derleyicisinin, SDC'yi bazı çekirdeklere karşı derleyecek kadar gelişmiş olmadığı bir durum olabilir. Bu durum nadir olmalıdır, çünkü muhtemelen özel bir çekirdek içerecektir ve bu dağıtımda ortak olan bir çekirdeği içermeyecektir. Bu durumda, kullanıcının standart olmayan bir paket deposundan daha gelişmiş bir GCC yüklemesi gerekir ve bu GCC'nin konumu $PATH'da belirtilmelidir. SDC hizmetine alternatif bir GCC yolu sağlamanın otomatik bir yolu yoktur.
Sürüm
3.6.3 veya üstü
4.5.2 veya üstü
Video Talimatları