Bazı kurumsal düzeydeki örnekler eRDMA'yı destekler. Bu hizmet, mevcut ağ mimarinizde değişiklik yapmanıza gerek kalmadan ultra düşük gecikme süresi, yüksek aktarım hızı ve son derece esnek bir RDMA ağ hizmeti sağlar. Bu konuda, bu örneklerde eRDMA'nın nasıl etkinleştirileceği açıklanmaktadır.
Sınırlamalar
Sınırlama | Açıklama |
Örnek türü | Aşağıdaki örnek türleri eRDMA'yı destekler: |
Görüntü |
Not Kullanılabilir görüntüler örnek türüne göre değişir. Örnek satın alma sayfasında yalnızca seçilen örnek türüyle uyumlu görüntüler görüntülenir. |
eRDMA cihazlarının sayısı | Bir örnek türünün desteklediği maksimum ERI sayısını belirlemek için DescribeInstanceTypes işlemi yanıtındaki EriQuantity parametresinin değerini kontrol edin. 0 değeri, örnek türünün ERI'leri desteklemediğini gösterir. |
Ağ sınırlamaları |
|
Kurumsal düzeydeki bir örnek için eRDMA'yı yapılandırın
Örnek oluşturma sırasında
İşletim sistemi eRDMA sürücüsünün otomatik olarak yüklenmesini desteklemiyorsa veya otomatik yükleme başarısız olursa, örnek oluşturulduktan sonra sürücüyü manuel olarak veya bir betik kullanarak yükleyebilirsiniz. Daha fazla bilgi için bkz. Mevcut bir örnek için eRDMA'yı yapılandırma.
eRDMA sürücü yüklemesi, örnek başladıktan sonra başlar ve biraz zaman alabilir.
-
ERI özelliğini destekleyen bir kurumsal düzeydeki örnek oluşturun. Örneği oluştururken aşağıdaki parametrelere dikkat edin. Diğer parametreler hakkında bilgi için bkz. Sihirbazı kullanarak örnek oluşturma.
-
Instances & Images: eRDMA'yı destekleyen bir örnek türü seçin ve eRDMA sürücüsünü yükleyin.
Instance: Bkz. Sınırlamalar.
-
Images: Public Image seçeneğini belirleyin ve ardından Install eRDMA Driver seçeneğini belirleyin. Örnek başladığında eRDMA sürücüsü otomatik olarak yüklenir.

-
ENIs: Primary ENI öğesinin sağ tarafında, bir ERI'yi ECS örneğine bağlamak için ERI özelliğini etkinleştirin.
NotKurumsal düzeydeki bir örnek oluştururken ERI özelliğini yalnızca birincil ENI için etkinleştirebilirsiniz. İkincil bir ENI için eRDMA'yı yapılandırmanız gerekiyorsa konsoldan veya bir API işlemi çağırarak ikincil ENI için ERI özelliğini etkinleştirebilirsiniz. Daha fazla bilgi için bkz. Esnek RDMA ağ arabirimi (ERI).
-
Mevcut bir örnek için
-
Örnek türünün eRDMA destekli örnek türleri listesinde olduğundan emin olun.
eRDMA'yı destekleyen bir örnek türü seçmeniz gerekir.
-
eRDMA'nın örnekte doğru şekilde yapılandırıldığını doğrulayın.
eRDMA'nın örnekte doğru şekilde yapılandırıldığını doğrulayın. Daha fazla bilgi için bkz. eRDMA yapılandırmasını doğrulama.
Örnekte eRDMA yapılandırılmadıysa eRDMA sürücüsünü yüklemek ve örneğe bir ERI bağlamak için aşağıdaki adımları izleyin.
-
Örnek için eRDMA sürücüsünü yükleyin.
Örneği oluştururken eRDMA Driver seçeneğini belirlemediyseniz eRDMA sürücüsünü manuel olarak veya bir betik kullanarak yüklemeniz gerekir.
Betik tabanlı yöntem: Bu yöntem varsayılan olarak en son kararlı sürücü paketini indirir.
Manuel yöntem: Belirli bir sürümdeki sürücü paketini indirebilirsiniz.
Tek tıkla betik yüklemesi
-
Sürücü paketinin en son kararlı sürümünü indirmek için aşağıdaki komutu çalıştırın.
curl -O http://mirrors.cloud.aliyuncs.com/erdma/env_setup.sh -
İndirilen sürücü paketini yüklemek için aşağıdaki komutu çalıştırın.
sudo /bin/bash env_setup.sh > /var/log/erdma_install.log 2>&1Yükleme betiğini çalıştırdıktan sonra betik gerekli yazılım bağımlılıklarını ve eRDMA sürücüsünü otomatik olarak yükler. Yüklemenin tamamlanmasını bekleyin.
NotSürücü yüklemesi başarısız olursa
/var/log/erdma_install.logkonumundaki yükleme günlüğünü kontrol edin.
Manuel yükleme
-
Ön koşul paketlerini güncellemek için aşağıdaki komutu çalıştırın.
-
Alibaba Cloud Linux 3, CentOS veya Anolis OS:
sudo yum update -y Ubuntu: Güncelleme gerekli değildir. Bu adımı atlayabilirsiniz.
-
-
En son çekirdek paketi sürümünü ve çalışan çekirdek sürümünü kontrol etmek için aşağıdaki komutları sırayla çalıştırın.
rpm -qa | grep kernel # Check the latest kernel package version. uname -r # Check the running kernel version.Örnek çıktı, sürümlerin tutarsız olduğunu gösterir. Yeni çekirdeği uygulamak için örneği yeniden başlatmanız gerekir. Yeniden başlatmadan sonra çalışan çekirdek sürümünün en son çekirdek paketi sürümüyle aynı olduğunu onaylamak için uname -r komutunu tekrar çalıştırın.
[ecs-user@iZbp1xxxxxxxxxxxxx ~]$ rpm -qa | grep kernel kernel-tools-5.10.134-16.1.al8.x86_64 kernel-5.10.134-16.1.al8.x86_64 kernel-modules-extra-5.10.134-16.1.al8.x86_64 kernel-hotfix-13383560-5.10.134-15-1.0-20230724161633.al8.x86_64 kernel-devel-5.10.134-16.1.al8.x86_64 kernel-5.10.134-15.al8.x86_64 kernel-modules-5.10.134-16.1.al8.x86_64 kernel-tools-libs-5.10.134-16.1.al8.x86_64 kernel-core-5.10.134-16.1.al8.x86_64 kernel-core-5.10.134-15.al8.x86_64 kernel-modules-internal-5.10.134-16.1.al8.x86_64 kernel-devel-5.10.134-15.al8.x86_64 kernel-modules-5.10.134-15.al8.x86_64 kernel-headers-5.10.134-16.1.al8.x86_64 [ecs-user@iZbp1xxxxxxxxxxxxx ~]$ uname -r 5.10.134-15.al8.x86_64 -
Bağımlılık paketlerini yüklemek için aşağıdaki komutu çalıştırın.
-
x86 örnekleri için aşağıdaki işlemleri gerçekleştirin:
-
Alibaba Cloud Linux 3, CentOS veya Anolis OS:
sudo yum install gcc-c++ dkms cmake kernel-devel kernel-headers libnl3 libnl3-devel -
Ubuntu:
sudo apt-get install dkms cmake libnl-3-dev libnl-route-3-dev linux-headers-generic
-
Kaynak tabanlı derleme görevleri gerektiren Arm örneklerinde bağımlılık paketleri çok sayıda olabilir ve değişebilir. Bu nedenle bu adımı atlayıp doğrudan yükleme betiğini çalıştırabilirsiniz. Yükleme betiği başarısız olursa gerekli bağımlılık paketlerini yüklemenizi ister. İstendiği gibi yükleyin ve ardından yükleme betiğini tekrar çalıştırın.
-
-
Sürücü yükleme paketini indirmek için aşağıdaki komutu çalıştırın.
-
Paketi dahili URL'den alın:
wget http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-latest.tar.gz -
Paketi genel URL'den alın:
wget https://mirrors.aliyun.com/erdma/erdma_installer-latest.tar.gz
Varsayılan olarak sürücü yükleme paketinin en son sürümü indirilir. Gereksinimlerinize bağlı olarak belirli bir sürümü de indirebilirsiniz. Farklı eRDMA yükleyici paketi sürümlerinin sürüm bilgileri için bkz. Adım 2: Bir ECS örneği için eRDMA sürücüsünü yükleme.
-
-
Yükleme paketini açmak ve açılan paketin dizinine geçmek için aşağıdaki komutu çalıştırın.
tar -xvf erdma_installer-latest.tar.gz && cd erdma_installer -
Sürücüyü yüklemek için aşağıdaki komutu çalıştırın.
-
Yöntem 1: Yükleme sırasında kaldırma ve otomatik indirme adımlarını manuel olarak onaylayın.
sudo sh install.sh -
Yöntem 2: Onay istemleri olmadan yüklemeyi çalıştırın.
sudo sh install.sh --batch
Yükleme sonucunu onaylamak için çıktıyı kontrol edin.
Aşağıdaki bilgiler döndürülürse sürücü başarıyla yüklenmiştir.
================================= Installation Information ====== architecture : x86_64 distributor : alinux release : 3 binary path : RPMS/alinux3 build from source : erdma(N) rdma-core(N) eadm(N) install requires : gcc make patch gcc-c++ dkms cmake kernel- build requires : gcc make patch gcc-c++ dkms cmake kernel- vel redhat-rpm-config rpm-build libnl3-devel ninja-build perl-gen hon3-docutils temp dir : /tmp/ERDMA.120833 log file : /tmp/install-erdma.log.120833 ==================================================================== Checking for Linux headers availability... Verifying dependencies... Removing erdma package... Start to uninstall rdma-core libraries... Installing erdma Reloading erdma modules Installation finished successfully. Update erdma.ko in initramfsAşağıdaki bilgiler döndürülürse sürücü yüklemesi başarısız olmuştur. İstemdeki talimatları izleyin ve ardından sürücüyü tekrar yüklemeyi deneyin.
========================== Installation Information ======================================== architecture : x86_64 distributor : alinux release : 3 binary path : RPMS/alinux3 build from source : erdma(Y) rdma-core(Y) eadm(Y) install requires : gcc make patch gcc-c++ dkms cmake kernel-headers kernel-devel build requires : gcc make patch gcc-c++ dkms cmake kernel-headers kernel-devel gcc make patch gcc-c++ dkms cmake kernel-headers kernel-devel redhat-rpm-config rpm-build libnl3-devel ninja-build perl-generators pandoc systemd-devel valgrind-devel kernel-rpm-macros python3-Cython python3-docutils temp dir : /tmp/ERDMA.172873 log file : /tmp/install-erdma.log.172873 =========================================================================================== Checking for Linux headers availability... Verifying dependencies... ERDMA requires the following Packages(s) to be installed: libnl3-devel ninja-build perl-generators pandoc systemd-devel valgrind-devel python3-Cython python3-docutilsNotCentOS 7 kullanıyorsanız ve sürücü yeniden yüklenirken bir paket eksikse ancak paketi
yumkullanarak alamıyorsanızyum install -y epel-releasekomutunu çalıştırarak EPEL deposunu yüklemeniz gerekebilir. Ardından gerekli paketi alabilirsiniz. -
-
Örneğe bir ERI bağlayın.
Bir örneğe aşağıdaki yollardan biriyle ERI bağlayabilirsiniz.
NotBir örnek türünün desteklediği maksimum ERI sayısını belirlemek için DescribeInstanceTypes işlemi yanıtındaki EriQuantity parametresinin değerini kontrol edin. 0 değeri, örnek türünün ERI'leri desteklemediğini gösterir.
-
eRDMA arabirimini etkinleştirmek için bağlı bir ENI'nin niteliklerini değiştirin
-
Bir ERI oluşturun ve bunu bir ECS örneğine bağlayın
ERI oluşturmak için bkz. Bağımsız bir ERI oluşturma.
ERI'yi bir ECS örneğine bağlamak için bkz. İkincil ENI bağlama.
-
eRDMA arabirimi etkinleştirilmiş bir ikincil ENI oluşturun ve bunu bir API işlemi kullanarak bir örneğe bağlayın
API işlemlerini kullanarak ikincil bir ENI oluşturun ve bağlayın:
-
ERI oluşturmak için bir API işlemi çağırın.
ENI oluşturmak için CreateNetworkInterface işlemini çağırabilirsiniz. ERI etkinleştirilmiş bir ENI oluşturmak için NetworkInterfaceTrafficMode parametresini HighPerformance olarak ayarlayın.
NetworkInterfaceIdparametresinde döndürülen ENI ID'sini kaydedin. -
AttachNetworkInterface işlemini çağırın. ERI etkinleştirilmiş ENI'yi bağlamak için NetworkInterfaceId değerini önceki adımdaki ID'ye ve InstanceId değerini hedef örnek ID'sine ayarlayın.
ÖnemliÖrnek türünüz birden çok ERI'yi destekliyorsa ağ bant genişliğini en üst düzeye çıkarmak için bunları bağlarken her ERI için farklı bir NetworkCardIndex belirtin. Bu, ERI'lerin farklı kanallara bağlanmasını sağlar. Bkz. Ağ kartı indeksleri.
-
-
eRDMA yazma gecikme süresini test edin
eRDMA etkin iki kurumsal düzeydeki örneğe perftest yükleyebilir ve yazma gecikme süresini test etmek için ib_write_lat kullanabilirsiniz. perftest hakkında daha fazla bilgi için bkz. perftest test paketi.
Ön koşullar
eRDMA yapılandırılmış iki kurumsal düzeydeki örnek hazırlayın. Bu, her örneğin eRDMA yazılım yığınının yüklü olması ve ENI'si için ERI özelliğinin etkinleştirilmiş olması anlamına gelir. Bir örnek sunucu, diğeri ise istemci olarak hizmet eder.
İki örneğin iç ağ üzerinden birbirleriyle iletişim kurabildiğinden emin olun. Daha fazla bilgi için bkz. ECS örnekleri arasında iç iletişimi etkinleştirme.
Yordam
-
İki örneğin her birine uzaktan bağlanın.
Daha fazla bilgi için bkz. Workbench kullanarak bir Linux örneğine bağlanma.
-
eRDMA'nın her iki örnekte de doğru şekilde yapılandırıldığını doğrulayın.
Daha fazla bilgi için bkz. eRDMA yapılandırmasını doğrulama.
-
Her örnekte perftest aracını yüklemek için aşağıdaki komutları çalıştırın.
perftest'i resmi depodan (genel IP adresi gerekir) veya bir YUM/APT deposundan yükleyin.
Resmi depo
ECS örneğine genel bir IP adresi atayın.
perftest'i resmi perftest deposundan indirin ve yükleyin.
YUM veya APT deposu
NotYazılım depolarındaki
perftestsürümleri Linux dağıtımları arasında farklılık gösterebilir ve bu durum uyumluluk sorunlarına neden olabilir. İletişim kuran tüm örneklerde aynı dağıtımı kullanın. Mümkün değilse resmi depodan yükleyin.-
Alibaba Cloud Linux 3, CentOS veya Anolis OS
sudo yum install perftest -y -
Ubuntu
sudo apt install perftest -y
-
eRDMA ağ gecikme süresini test edin.
-
Sunucu örneğinde, istemciden gelen bağlantıları dinleyen bir sunucu olarak
ib_write_latbaşlatmak için aşağıdaki komutu çalıştırın.ib_write_lat -R -a -F-
-R: Bağlantı kurmak için RDMA Connection Manager (RDMA_CM) kullanır.ÖnemlieRDMA'yı destekleyen CPU tabanlı örnek türleri için eRDMA çekirdek sürücüsü varsayılan olarak Standard modda yüklenir ve bu mod yalnızca RDMA_CM bağlantı kurma yöntemini destekler. Daha fazla bilgi için bkz. Bağlantı kurma yöntemi.
Varsayılan olarak perftest bant dışı (OOB) bağlantı kullanır. CPU tabanlı bir örnekte perftest çalıştırırken sunucuda ve istemcide RDMA_CM bağlantı kurma yöntemini belirtmek için -R parametresini kullanabilirsiniz. Aksi takdirde bağlantı başarısız olabilir.
RDMA_CM ve OOB bağlantı kurma yöntemlerinin uyumlu olmasını sağlamak için komut satırını da kullanabilirsiniz. Daha fazla bilgi için bkz. Uyumluluk sağlamak için eRDMA ve bRPC'nin bağlantı kurma modunu değiştirme. Uyumluluğu etkinleştirdikten sonra -R parametresi artık gerekli değildir.
-a: 2 bayttan 2^23 bayta kadar tüm mesaj boyutları için testler çalıştırır. Bu, farklı mesaj boyutlarının gecikme süresi üzerindeki etkisini test etmenizi sağlar.-F: Var olan tüm bağlantıların üzerine yazmaya zorlar. Yani bir bağlantı zaten kurulmuşsa-Fseçeneğini kullanmak bu bağlantıları yok sayar ve yeni bir bağlantı kurulmasına zorlar.
-
-
İstemci örneğinde,
ib_write_latbaşlatmak ve sunucuya bağlanmak için aşağıdaki komutu çalıştırın.ib_write_lat -R -a -F <server_ip><server_ip>değerini sunucunun ERI etkin ENI'sinin özel IP adresi ile değiştirin. IP adresini almak için bkz. IP adreslerini görüntüleme. -
Test sonuçlarını görüntüleyin.
İstemcideki test tamamlandıktan sonra
ib_write_lattest yapılandırma bilgilerini, bağlantı bilgilerini ve minimum, maksimum ve ortalama gecikme süresi gibi gecikme süresi istatistiklerini içeren performans testi sonuçlarını çıktılar.[root@xxx ~]# ib_write_lat -R -a -F 172.17.0.131 RDMA_Write Latency Test Dual-port : OFF Device : erdma_0 Number of qps : 1 Transport type : IW Connection type : RC Using SRQ : OFF PCIe relax order: OFF ibv_wr* API : OFF TX depth : 1 Mtu : 1024[B] Link type : Ethernet GID index : 0 Max inline data : 96[B] rdma_cm QPs : ON Data ex. method : rdma_cm local address: LID 0000 QPN 0x000b PSN 0xaf51c5 GID: 00:22:62:22:161:180:00:00:00:00:00:00:00:00:00:00 remote address: LID 0000 QPN 0x000a PSN 0x347ff0 GID: 00:22:62:09:142:189:00:00:00:00:00:00:00:00:00:00 #bytes #iterations t_min[usec] t_max[usec] t_typical[usec] t_avg[usec] t_stdev[usec] 99% percentile[usec] 99.9% percentile[usec] 2 1000 12.26 16.79 12.59 12.65 0.19 14.32 16.79 4 1000 12.10 18.10 12.54 12.60 0.24 14.57 18.10 8 1000 12.04 18.75 12.42 12.48 0.31 14.09 18.75 16 1000 12.45 14.77 12.77 12.81 0.11 14.10 14.77 32 1000 12.28 15.55 12.75 12.81 0.21 14.67 15.55 64 1000 12.41 16.10 12.79 12.84 0.16 14.31 16.10 128 1000 12.86 16.22 13.19 13.21 0.15 14.78 16.22 256 1000 13.11 20.85 13.53 13.64 0.35 15.43 20.85 512 1000 13.09 16.54 13.44 13.47 0.17 15.16 16.54
-