Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat konfigurasi klien EFA
Gunakan prosedur berikut untuk mengatur klien Lustre Anda untuk mengakses EFA -enabled FSx untuk sistem file Lustre.
Topik
Menginstal EFA modul dan mengkonfigurasi antarmuka
Untuk mengakses sistem file FSx for Lustre menggunakan EFA antarmuka, Anda harus menginstal EFA modul Lustre dan mengkonfigurasi antarmuka. EFA EFAsaat ini didukung pada klien Lustre yang menjalankan Ubuntu 22 dengan versi kernel 6.8 dan lebih tinggi. Lihat Langkah 3: Instal EFA perangkat lunak di Panduan EC2 Pengguna Amazon tentang langkah-langkah untuk menginstal EFA driver.
Untuk mengonfigurasi instance klien Anda pada sistem file EFA -enabled
Connect ke EC2 instans Amazon Anda.
Salin skrip berikut dan simpan sebagai file bernama
configure-efa-fsx-lustre-client.sh
.#!/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin echo "Started ${0} at $(date)" eth_intf="$(ip -br -4 a sh | grep $(hostname -i)/ | awk '{print $1}')" efa_version=$(modinfo efa | awk '/^version:/ {print $2}' | sed 's/[^0-9.]//g') min_efa_version="2.12.1" # Check the EFA driver version. Minimum v2.12.1 supported if [[ -z "$efa_version" ]]; then echo "Error: EFA driver not found" exit 1 fi if [[ "$(printf '%s\n' "$min_efa_version" "$efa_version" | sort -V | head -n1)" != "$min_efa_version" ]]; then echo "Error: EFA driver version $efa_version does not meet the minimum requirement $min_efa_version" exit 1 else echo "Using EFA driver version $efa_version" fi echo "Loading Lustre/EFA modules..." sudo /sbin/modprobe lnet sudo /sbin/modprobe kefalnd ipif_name="$eth_intf" sudo /sbin/modprobe ksocklnd sudo lnetctl lnet configure echo "Configuring TCP interface..." sudo lnetctl net del --net tcp 2> /dev/null sudo lnetctl net add --net tcp --if $eth_intf # For P5 instance type which supports 32 network cards, # by default add 8 EFA interfaces selecting every 4th device (1 per PCI bus) echo "Configuring EFA interface(s)..." instance_type="$(ec2-metadata --instance-type | awk '{ print $2 }')" num_efa_devices="$(ls -1 /sys/class/infiniband | wc -l)" echo "Found $num_efa_devices available EFA device(s)" if [[ "$instance_type" == "p5.48xlarge" || "$instance_type" == "p5e.48xlarge" ]]; then for intf in $(ls -1 /sys/class/infiniband | awk 'NR % 4 == 1'); do sudo lnetctl net add --net efa --if $intf --peer-credits 32 done else # Other instances: Configure 2 EFA interfaces by default if the instance supports multiple network cards, # or 1 interface for single network card instances # Can be modified to add more interfaces if instance type supports it sudo lnetctl net add --net efa --if $(ls -1 /sys/class/infiniband | head -n1) --peer-credits 32 if [[ $num_efa_devices -gt 1 ]]; then sudo lnetctl net add --net efa --if $(ls -1 /sys/class/infiniband | tail -n1) --peer-credits 32 fi fi echo "Setting discovery and UDSP rule" sudo lnetctl set discovery 1 sudo lnetctl udsp add --src efa --priority 0 sudo /sbin/modprobe lustre sudo lnetctl net show echo "Added $(sudo lnetctl net show | grep -c '@efa') EFA interface(s)"
Jalankan skrip EFA konfigurasi.
sudo apt-get install amazon-ec2-utils cron sudo chmod +x configure-efa-fsx-lustre-client.sh ./configure-efa-fsx-lustre-client.sh
Gunakan contoh perintah berikut untuk menyiapkan pekerjaan cron yang secara otomatis mengkonfigurasi ulang EFA pada instance klien setelah di-boot ulang:
(sudo crontab -l 2>/dev/null; echo "@reboot /path/to/configure-efa-fsx-lustre-client.sh > /var/log/configure-efa-fsx-lustre-client-output.log") | sudo crontab -
Menambahkan atau menghapus EFA antarmuka
Masing-masing FSx untuk sistem file Lustre memiliki batas maksimum 1024 EFA koneksi di semua instance klien.
configure-efa-fsx-lustre-client.sh
Skrip secara otomatis mengonfigurasi jumlah antarmuka Elastic Fabric Adapter (EFA) pada EC2 instance berdasarkan jenis instance. Untuk instance P5 (p5.48xlarge
ataup5e.48xlarge
), ini mengkonfigurasi 8 EFA antarmuka secara default. Untuk contoh lain dengan beberapa kartu jaringan, ia mengkonfigurasi 2 EFA antarmuka. Untuk contoh dengan kartu jaringan tunggal, ia mengkonfigurasi 1 EFA antarmuka. Ketika instance klien terhubung ke sistem file FSx for Lustre, setiap EFA antarmuka yang dikonfigurasi pada instance klien dihitung terhadap batas koneksi EFA 1024.
Instans klien dengan lebih banyak EFA antarmuka biasanya mendukung tingkat throughput yang lebih tinggi per instance klien dibandingkan dengan instance klien dengan antarmuka yang lebih sedikit. EFA Selama Anda tidak melebihi batas EFA koneksi, Anda dapat memodifikasi skrip untuk menambah atau mengurangi jumlah EFA antarmuka per instance untuk mengoptimalkan kinerja throughput per klien untuk beban kerja Anda.
Untuk menambahkan EFA antarmuka:
sudo lnetctl net add --net efa --if
device_name
--peer-credits 32
Di device_name
mana perangkat terdaftar dils -1 /sys/class/infiniband
.
Untuk menghapus EFA antarmuka:
sudo lnetctl net del --net efa --if
device_name
Menginstal GDS driver
Untuk menggunakan GPUDirect Storage (GDS) FSx aktif untuk Lustre, Anda harus menggunakan instans klien Amazon EC2 P5 atau G6, dan NVIDIA GDS driver dengan versi rilis 2.24.2 atau lebih tinggi.
Untuk menginstal driver NVIDIA GPUDirect Storage pada instance klien Anda
Kloning gds-nvidia-fs repositoriNVIDIA/yang tersedia
di. GitHub git clone https://github.com/NVIDIA/gds-nvidia-fs.git
Setelah mengkloning repositori, gunakan perintah berikut untuk membangun driver:
cd gds-nvidia-fs/src/ export NVFS_MAX_PEER_DEVS=128 export NVFS_MAX_PCI_DEPTH=16 sudo -E make sudo insmod nvidia-fs.ko