Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkonfigurasi klien EFA
Gunakan prosedur berikut untuk mengatur klien Lustre Anda untuk mengakses EFA enabled FSx untuk sistem file Lustre.
Topik
Menginstal modul EFA dan mengkonfigurasi antarmuka
Untuk mengakses sistem file FSx for Lustre menggunakan antarmuka EFA, Anda harus menginstal modul Lustre EFA dan mengkonfigurasi antarmuka EFA. EFA saat ini didukung pada klien Lustre yang menjalankan Ubuntu 22 dengan versi kernel 6.8 dan lebih tinggi. Lihat Langkah 3: Instal perangkat lunak EFA di Panduan EC2 Pengguna Amazon tentang langkah-langkah untuk menginstal driver EFA.
Untuk mengonfigurasi instance klien Anda pada sistem file berkemampuan EFA
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 konfigurasi EFA.
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 antarmuka EFA
Masing-masing FSx untuk sistem file Lustre memiliki batas maksimum 1024 koneksi EFA di semua instance klien.
configure-efa-fsx-lustre-client.sh
Skrip secara otomatis mengonfigurasi jumlah antarmuka Elastic Fabric Adapter (EFA) pada instance berdasarkan jenis EC2 instance. Untuk instance P5 (p5.48xlarge
ataup5e.48xlarge
), ini mengonfigurasi 8 antarmuka EFA secara default. Untuk contoh lain dengan beberapa kartu jaringan, ini mengkonfigurasi 2 antarmuka EFA. Untuk contoh dengan kartu jaringan tunggal, ia mengkonfigurasi 1 antarmuka EFA. Ketika instance klien terhubung ke sistem file FSx for Lustre, setiap antarmuka EFA yang dikonfigurasi pada instance klien dihitung terhadap batas koneksi 1024 EFA.
Instans klien dengan lebih banyak antarmuka EFA biasanya mendukung tingkat throughput yang lebih tinggi per instance klien dibandingkan dengan instance klien dengan antarmuka EFA yang lebih sedikit. Selama Anda tidak melebihi batas koneksi EFA, Anda dapat memodifikasi skrip untuk menambah atau mengurangi jumlah antarmuka EFA per instance untuk mengoptimalkan kinerja throughput per klien untuk beban kerja Anda.
Untuk menambahkan antarmuka EFA:
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 antarmuka EFA:
sudo lnetctl net del --net efa --if
device_name
Menginstal driver GDS
Untuk menggunakan GPUDirect Storage (GDS) aktif FSx untuk Lustre, Anda harus menggunakan instans klien Amazon EC2 P5 atau G6, dan driver NVIDIA GDS dengan versi rilis 2.24.2 atau lebih tinggi.
catatan
Jika Anda menggunakan instance Deep Learning AMI, driver NVIDIA GPUDirect Storage (GDS) sudah diinstal sebelumnya dan Anda dapat melewati prosedur instalasi driver ini.
Untuk menginstal driver NVIDIA GPUDirect Storage pada instance klien Anda
Kloning NVIDIA/ gds-nvidia-fs repositori
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