Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat pengguna di cluster Slurm di SageMaker HyperPod
Ada tiga cara untuk membuat pengguna POSIX di seluruh node cluster Slurm. SageMaker HyperPod Mereka berbeda dalam kapan pengguna dibuat dan berapa banyak konfigurasi siklus hidup yang harus Anda kelola. Pilih opsi yang cocok dengan cluster dan alur kerja Anda, yang tercantum di sini dari yang paling mudah hingga yang paling canggih.
| Opsi | Terbaik untuk | Diperlukan konfigurasi siklus hidup | Saat pengguna dibuat | Perilaku pada peningkatan skala atau penggantian simpul |
|---|---|---|---|---|
| Opsi A: Tambahkan pengguna dengan skrip utilitas buat pengguna | Menambahkan pengguna ke cluster yang sudah ada InService, tanpa menyentuh konfigurasi siklus hidup | Tidak ada | Sesuai permintaan, setiap kali Anda menjalankan skrip | Manual. Pengguna tidak diterapkan secara otomatis; jalankan kembali skrip setiap kali node ditambahkan atau diganti (secara otomatis atau manual). |
| Opsi B: Tambahkan pengguna dengan skrip ekstensi add-user | AMI-based kluster yang dikonfigurasi siklus hidup yang menyediakan pengguna secara otomatis | Tambahkan skrip ekstensi pengguna | Secara otomatis selama penyediaan node — selama pembuatan klaster, menambahkan node (peningkatan skala), pembaruan AMI, penggantian node. | Otomatis. Ekstensi berjalan pada setiap node baru selama penyediaan, menggunakan file pengguna dalam bucket Amazon S3 skrip siklus hidup. |
| Opsi C: Tambahkan pengguna dengan skrip siklus hidup dasar | Cluster yang sudah menggunakan set skrip siklus hidup dasar kustom lengkap | Set skrip siklus hidup kustom penuh | Secara otomatis selama penyediaan node — selama pembuatan klaster, menambahkan node (peningkatan skala), pembaruan AMI, penggantian node. | Otomatis. Skrip siklus hidup dasar berjalan pada setiap node baru selama penyediaan, menggunakan file pengguna dalam bucket Amazon S3 skrip siklus hidup. |
Ketiga opsi menggunakan skrip yang disediakan tim SageMaker HyperPod layanan di repositori Pelatihan Terdistribusi Awsome
Topik
Opsi A: Tambahkan pengguna dengan skrip utilitas buat pengguna
Ini adalah opsi paling sederhana dan tidak memerlukan konfigurasi siklus hidup. Gunakan saat cluster Anda sudah InServicedan Anda ingin menambahkan pengguna sekarang. Jalankan skrip utilitas create_users.sh
-
Mode baris perintah — Anda meneruskan nama pengguna sebagai argumen dan skrip secara otomatis menetapkan UID. Ini adalah cara tercepat untuk menambahkan pengguna.
-
Mode file — skrip membaca definisi pengguna dari file
shared_users.txt(CSV) ataushared_users.yaml(YAMB) di direktori saat ini. -
Mode interaktif — skrip meminta Anda untuk nama pengguna dan, secara opsional, UID.
penting
Dalam setiap mode, create_users.sh buat pengguna hanya pada node yang ada saat Anda menjalankannya. Ini termasuk mode file dengan lokal shared_users.txt ataushared_users.yaml. Pengguna tidak secara otomatis dibuat ulang pada node yang ditambahkan kemudian dengan scale-up atau penggantian node. Itu adalah penyediaan acara di mana node baru melakukan booting dengan volume root baru yang tidak memiliki akun POSIX. (Direktori rumah dan kunci SSH pada sistem file bersama bertahan, tetapi akun pengguna sendiri tidak.) Re-run create_users.shsetelah node baru ditambahkan untuk mengantre.
Re-running naskahnya aman. Jalankan pada node controller; ia menemukan node cluster lain dan menerapkan pengguna di seluruh cluster dalam satu run. Ini idempoten per node: ini menciptakan pengguna hanya jika hilang, meninggalkan node yang sudah memiliki pengguna tidak berubah - jadi berjalan kembali setelah menambahkan node hanya mempengaruhi node baru.
Agar node baru menerima pengguna secara otomatis, file pengguna harus menjadi bagian dari konfigurasi siklus hidup klaster sehingga berjalan selama penyediaan: simpan shared_users.yaml file shared_users.txt atau di bucket Amazon S3 skrip siklus hidup Anda dan gunakan dengan atau file. Opsi B: Tambahkan pengguna dengan skrip ekstensi add-user Opsi C: Tambahkan pengguna dengan skrip siklus hidup dasar create_users.shmembantu dengan menambahkan setiap pengguna yang dibuatnya shared_users.txt dan menawarkan untuk mengunggahnya ke Amazon S3, tetapi dengan sendirinya — dalam mode apa pun — itu tidak membuat pengguna bertahan di seluruh acara penyediaan.
Untuk setiap pengguna, skrip:
-
Menciptakan pengguna POSIX dengan UID yang konsisten pada setiap node.
-
Membuat direktori home pada sistem file bersama (deteksi otomatis OpenZFS di
/homeatau Amazon FSx for Lustre at)./fsx -
Menghasilkan key pair SSH pada sistem file bersama untuk SSH antar-node tanpa kata sandi.
-
Menambahkan pengguna ke
dockergrup (dan, secara opsional, memberikan akses sudo). -
Mendaftarkan pengguna dengan akuntansi Slurm pada pengontrol sehingga mereka dapat mengirimkan pekerjaan.
-
Menambahkan pengguna baru ke
shared_users.txtfile dan secara opsional mengunggahnya ke Amazon S3, sehingga Anda dapat menggunakannya kembali dengan opsi lain.
Prasyarat
Sebelum Anda mulai, verifikasi persyaratan berikut terpenuhi.
-
Cluster adalah InServicedan Anda dapat terhubung ke node controller. Lihat Mengakses node SageMaker HyperPod cluster Anda.
-
jqdiinstal pada node pengontrol. -
Akses SSH tersedia dari node pengontrol ke semua node lain (HyperPod mengkonfigurasi ini untuk pengguna default).
Untuk menambahkan pengguna dengan skrip utilitas create_users.sh
Selesaikan langkah-langkah berikut:
-
Connect ke node controller dan download script. Pastikan Anda menjalankannya dengan izin sudo.
$curl -O https://raw.githubusercontent.com/awslabs/awsome-distributed-training/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils/create_users.sh chmod +x create_users.sh -
Jalankan skrip menggunakan salah satu dari tiga modenya, yang dipilih berdasarkan prioritas dari argumen yang Anda lewati dan file di direktori saat ini: argumen baris perintah terlebih dahulu, lalu file pengguna, lalu prompt interaktif. Setiap mode menjalankan urutan yang sama: buat pengguna pada node saat ini, atur keypair SSH pada sistem file bersama, buat pengguna di semua node yang tersisa (hitung node secara paralel), daftarkan mereka dengan akuntansi Slurm pada pengontrol, tambahkan ke
shared_users.txt, dan tawarkan untuk mengunggah file itu ke Amazon S3.Tiga mode dijelaskan dalam contoh berikut, masing-masing menambahkan dua pengguna (
user1danuser2).Mode baris perintah
Berikan nama pengguna sebagai argumen. Skrip secara otomatis menetapkan UID dan meminta apakah pengguna baru harus menjadi sudoer. Ini adalah cara tercepat untuk menambahkan pengguna.
$sudo ./create_users.sh user1 user2Skrip memvalidasi nama pengguna, lalu meminta akses sudoer:
======================================== Step 1: User Configuration ======================================== Users from CLI args: user1 user2 ✓ user1 — will be created (auto-assign UID) ✓ user2 — will be created (auto-assign UID) Make these user(s) sudoer(s)? (y/N): nKemudian membuat pengguna pada node saat ini, mengatur keypair SSH, membuatnya di node komputasi, mendaftarkannya dengan akuntansi Slurm pada pengontrol, dan menulis
shared_users.txt, meminta Anda di akhir untuk mengunggah file itu ke Amazon S3.Modus berkas
Buat file pengguna di direktori yang sama dengan skrip, lalu jalankan skrip tanpa argumen. Skrip membaca definisi pengguna, memvalidasinya (hanya membuat pengguna yang belum ada dan melewatkan konflik UID), dan membuat pengguna di semua node. Script menerima dua format file.
Untuk
shared_users.txt, gunakan file CSV dengan satu pengguna per baris dalam formatusername,uid,home_directory:user1,2001,/fsx/user1 user2,2002,/fsx/user2Atau, untuk
shared_users.yaml, gunakan file YAMM dengan daftar sederhana pengguna atau pengguna yang diatur ke dalam grup. Parsing format ini membutuhkan PyYaml pada node. Berikut ini adalah format daftar sederhana:users: - username: user1 uid: 2001 - username: user2 uid: 2002Jika kedua file ada,
shared_users.txtdiutamakan. Jalankan skrip tanpa argumen:$sudo ./create_users.shSkrip memvalidasi entri file, mengonfirmasi pembuatan, meminta akses sudoer, dan menawarkan untuk menambahkan pengguna yang tidak ada dalam file. Kemudian membuat
user1danuser2pada semua node dengan UID dari file (2001 dan 2002), mengatur keypair SSH, mendaftarkannya dengan akuntansi Slurm, dan memperbarui.shared_users.txtMode interaktif
Jalankan skrip tanpa argumen dan tidak ada file pengguna. Skrip meminta Anda untuk nama pengguna dan, secara opsional, UID untuk menetapkan:
$sudo ./create_users.sh======================================== Step 1: User Configuration ======================================== No shared_users.txt or shared_users.yaml found. Entering interactive mode... Enter username(s), comma-separated (e.g. 'sean' or 'sean,alice,bob'): user1,user2 Specify UIDs? (Enter for auto-assign, or comma-separated UIDs): 2001,2002 Make these user(s) sudoer(s)? (y/N): nSetelah Anda menjawab petunjuknya, skrip membuat
user1danuser2pada semua node dengan UID yang Anda masukkan, mengatur keypair SSH, mendaftarkannya dengan akuntansi Slurm, dan memperbarui.shared_users.txt -
Uji pengguna dengan beralih ke sana dan menjalankan perintah di seluruh cluster.
$sudo su - user1 && ssh $(srun hostname)
catatan
Naskahnya idempoten. Pengguna yang sudah ada dilewati, dan kunci SSH dan asosiasi akuntansi Slurm yang ada dibiarkan di tempatnya, sehingga aman untuk dijalankan kembali.
Opsi B: Tambahkan pengguna dengan skrip ekstensi add-user
Gunakan opsi ini saat klaster Anda menggunakan AMI-basedkonfigurasi dan Anda ingin pengguna disediakan secara otomatis. Dengan opsi siklus hidup ekstensi, SageMaker HyperPod jalankan AMI-based konfigurasi lengkap terlebih dahulu, lalu jalankan skrip ekstensi Anda. Tim layanan menyediakan ekstensi add-user
Untuk informasi selengkapnya tentang pengaturan ekstensi:
-
Untuk mengatur ekstensi menggunakan AWS konsol, lihat Konfigurasi siklus hidup - opsional di bawah Penyiapan khusus.
-
Untuk menyiapkan ekstensi menggunakan API, lihat Opsi B: Memperpanjang AMI-based konfigurasi dengan bagian OnInitComplete Buat klaster Anda.
add-usersEkstensi ini menciptakan pengguna POSIX dengan UID yang konsisten, menyiapkan direktori home pada sistem file bersama, menghasilkan pasangan kunci SSH untuk SSH antar-simpul tanpa kata sandi, dan mendaftarkan pengguna dengan akuntansi Slurm pada pengontrol. Ia menerima dua format input:
-
shared_users.txt— format CSV yang sama yang digunakan oleh skrip siklus hidup dasar ().username,uid,/fsx/usernameSemua pengguna ditambahkan ke akunrootSlurm. -
shared_users.yaml— format YAMM yang juga mendukung pengorganisasian pengguna ke dalam grup dengan akun Slurm per grup dan pemasangan sistem file. Grup hanya organisasi; mereka tidak membuat grup Linux.
Berikut ini adalah contoh shared_users.yaml menggunakan format grup:
groups: - name: research slurm_account: research users: - username: user1 uid: 2001 - username: user2 uid: 2002 - name: platform slurm_account: platform users: - username: user3 uid: 3001
Untuk menambahkan pengguna dengan ekstensi add-users pada pembuatan cluster
Selesaikan langkah-langkah berikut:
-
Salin file sampel yang sesuai di
add-usersdirektori dan edit dengan pengguna Anda:$cp shared_users_sample.yaml shared_users.yaml -
Unggah
add-usersdirektori ke skrip siklus hidup Anda Amazon S3 bucket (jalur bucket harus dimulai dengan):s3://sagemaker-$aws s3 cp add-users/ s3://DOC-EXAMPLE-BUCKET/add-users/ --recursive -
Tentukan ekstensi di
LifeCycleConfigblokCreateClusterpermintaan Anda, gunakanadd_users.shsebagaiOnInitCompleteskrip:"LifeCycleConfig": { "OnInitComplete": "add_users.sh", "SourceS3Uri": "s3://DOC-EXAMPLE-BUCKET/add-users/" }
Tip
Jika klaster Anda membutuhkan beberapa kemampuan selain pembuatan pengguna (misalnya, observabilitas), unggah seluruh folder Extensions dan gunakan run_extensions.sh orkestrator sebagai skrip ekstensi Anda. Ini menyediakan toggle boolean sederhana seperti ENABLE_ADD_USERS="true" untuk mengaktifkan setiap kemampuan. Lihat perinciannya di Memulai dengan SageMaker HyperPod menggunakan AWS CLI.
Untuk menambahkan pengguna ke cluster yang ada setelah pembuatan
Karena ekstensi hanya berjalan selama penyediaan node, menambahkan pengguna ke node yang sudah berjalan mengharuskan Anda menjalankan ekstensi secara manual.
-
Perbarui file pengguna Anda dengan pengguna baru (simpan pengguna yang ada di file) dan unggah ke Amazon S3:
$aws s3 cp add-users/shared_users.yaml s3://DOC-EXAMPLE-BUCKET/add-users/shared_users.yaml -
Connect ke node controller dan tarik script ke sistem file bersama:
$sudo mkdir -p /fsx/cluster-scripts/add-users sudo aws s3 cp s3://DOC-EXAMPLE-BUCKET/add-users/ /fsx/cluster-scripts/add-users/ --recursive sudo chmod +x /fsx/cluster-scripts/add-users/*.sh -
Jalankan ekstensi pada pengontrol:
$sudo bash /fsx/cluster-scripts/add-users/add_users.sh -
Jalankan ekstensi pada node komputasi dengan
srun:$sudo srun --partition=partition-namebash /fsx/cluster-scripts/add-users/add_users.sh
Skrip melewati pengguna yang ada dan hanya membuat yang baru; mereka idempoten.
Opsi C: Tambahkan pengguna dengan skrip siklus hidup dasar
Gunakan opsi ini hanya jika klaster Anda sudah menggunakan set skrip siklus hidup dasar kustom lengkap, di mana skrip Anda memiliki seluruh urutan penyediaan. Ini adalah opsi paling canggih karena Anda mengelola set skrip siklus hidup lengkap daripada ekstensi tunggal. Tim layanan menyediakan skrip add_users.shlifecycle_script.py) berjalanadd_users.sh, yang membaca shared_users.txt file dan membuat pengguna dan direktori home mereka.
Dalam opsi ini, add_users.sh menangani pengguna POSIX dan pembuatan direktori home saja. Pembuatan keypair SSH untuk SSH antar-simpul tanpa kata sandi adalah modul terpisah dalam kumpulan skrip siklus hidup dasar (misalnya,gen-keypair-ubuntu.sh), yang dipanggil pelari skrip siklus hidup sebagai bagian dari set lengkap. Pastikan modul kunci SSH disertakan dalam set skrip siklus hidup Anda sehingga pengguna mendapatkan keypair pada sistem file bersama.
Untuk informasi selengkapnya tentang menyiapkan set skrip siklus hidup kustom lengkap:
-
Untuk menyiapkan skrip siklus hidup menggunakan API, lihat Opsi C: Kontrol kustom penuh dengan bagian Buat klaster OnCreate Anda.
Untuk membuat pengguna selama pembuatan klaster Slurm
Selesaikan langkah-langkah berikut:
-
Unduh set skrip siklus hidup konfigurasi dasar
dari situs web. GitHub Dengan opsi ini, Anda mengunggah seluruh folder konfigurasi dasar sebagai set skrip siklus hidup Anda, tidak hanya. add_users.sh -
Di folder base-config, buat atau edit file teks bernama
shared_users.txtdalam format berikut. Kolom pertama adalah nama pengguna, kolom kedua adalah ID pengguna unik, dan kolom ketiga adalah direktori pengguna di ruang bersama Amazon FSx.username1,uid1,/fsx/username1 username2,uid2,/fsx/username2 ...add_users.shmembacashared_users.txtdari folder yang sama, jadi file harus berada di dalam konfigurasi dasar di samping skrip. -
Unggah seluruh folder konfigurasi dasar ke bucket Amazon S3 untuk skrip siklus hidup Anda. HyperPod Sementara pembuatan cluster, pembaruan cluster, atau pembaruan perangkat lunak cluster sedang berlangsung, runner skrip siklus hidup berjalan
add_users.sh, yang membacashared_users.txtdan mengatur pengguna dan direktori home mereka.
catatan
add_users.shsecara otomatis mendeteksi sistem file bersama: jika OpenZFS dipasang di sana akan membuat direktori home di /home sana; jika tidak, ia menggunakan jalur Amazon FSx for Lustre.