Ukuran dan pembaruan kapasitas cluster - AWS ParallelCluster

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Ukuran dan pembaruan kapasitas cluster

Kapasitas cluster ditentukan oleh jumlah node komputasi yang dapat diskalakan oleh cluster. Node komputasi didukung oleh instans Amazon EC2 yang ditentukan dalam sumber daya komputasi dalam (Scheduling/SlurmQueues/ComputeResources) konfigurasi, dan diatur ke dalam AWS ParallelCluster (Scheduling/SlurmQueues) antrian yang memetakan 1:1 ke partisi. Slurm

Dalam sumber daya komputasi, dimungkinkan untuk mengonfigurasi jumlah minimum node komputasi (instance) yang harus selalu berjalan di cluster (MinCount), dan jumlah maksimum instance yang dapat diskalakan oleh sumber daya komputasi ke (3). MaxCount

Pada waktu pembuatan klaster, atau pada pembaruan klaster, AWS ParallelCluster meluncurkan instans Amazon EC2 sebanyak yang dikonfigurasi untuk setiap sumber daya komputasi Scheduling/SlurmQueues/ ComputeResources () yang ditentukan MinCount dalam klaster. Instance yang diluncurkan untuk mencakup jumlah minimal node untuk sumber daya komputasi di cluster disebut node statis. Setelah dimulai, node statis dimaksudkan untuk persisten di cluster dan mereka tidak dihentikan oleh sistem, kecuali peristiwa atau kondisi tertentu terjadi. Peristiwa tersebut termasuk, misalnya, kegagalan Slurm atau pemeriksaan kesehatan Amazon EC2 dan perubahan status Slurm node menjadi DRAIN atau DOWN.

Instans Amazon EC2, dalam kisaran 1 hingga ‘MaxCount - MinCount’ (MaxCount minus MinCount), diluncurkan sesuai permintaan untuk menangani peningkatan beban cluster, disebut sebagai node dinamis. Sifat mereka fana, mereka diluncurkan untuk melayani pekerjaan yang tertunda dan dihentikan setelah mereka tetap menganggur untuk jangka waktu yang ditentukan oleh Scheduling/SlurmSettings/ScaledownIdletime dalam konfigurasi cluster (default: 10 menit).

Node statis dan simpul dinamis mematuhi skema penamaan berikut:

  • Node statis <Queue/Name>-st-<ComputeResource/Name>-<num> di mana <num> = 1..ComputeResource/MinCount

  • Node dinamis <Queue/Name>-dy-<ComputeResource/Name>-<num> di mana <num> = 1..(ComputeResource/MaxCount - ComputeResource/MinCount)

Misalnya diberikan AWS ParallelCluster konfigurasi berikut:

Scheduling: Scheduler: Slurm SlurmQueues: - Name: queue1 ComputeResources: - Name: c5xlarge Instances: - InstanceType: c5.xlarge MinCount: 100 MaxCount: 150

Node berikut akan didefinisikan dalam Slurm

$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]

Ketika sumber daya komputasi memilikiMinCount == MaxCount, semua node komputasi yang sesuai akan statis dan semua instance akan diluncurkan pada waktu pembuatan/pembaruan cluster dan terus berjalan. Sebagai contoh:

Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ComputeResources: - Name: c5xlarge Instances: - InstanceType: c5.xlarge MinCount: 100 MaxCount: 100
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]

Pembaruan kapasitas cluster

Pembaruan kapasitas cluster termasuk menambahkan atau menghapus antrian, menghitung sumber daya atau mengubah sumber daya komputasi. MinCount/MaxCount Mulai dari AWS ParallelCluster versi 3.9.0, mengurangi ukuran antrian memerlukan armada komputasi dihentikan atau QueueUpdateStrategydisetel ke TERMINATE sebelum pembaruan klaster berlangsung. Tidak perlu menghentikan armada komputasi atau menyetel QueueUpdateStrategyke TERMINATE saat:

  • Menambahkan antrian baru ke Penjadwalan/SlurmQueues

  • Menambahkan sumber daya komputasi baru Scheduling/SlurmQueues/ComputeResources ke antrian

  • Meningkatkan MaxCount sumber daya komputasi

  • Peningkatan MinCount sumber daya komputasi dan peningkatan MaxCount sumber daya komputasi yang sama setidaknya dengan jumlah yang sama

Pertimbangan dan batasan

Bagian ini dimaksudkan untuk menguraikan faktor penting, kendala, atau batasan yang harus diperhitungkan saat mengubah ukuran kapasitas cluster.

Ketika mengubah MinCount parameter sumber daya komputasi kita dapat membedakan dua skenario yang berbeda, jika MaxCount tetap sama dengan MinCount (kapasitas statis saja), dan jika MaxCount lebih besar dari MinCount (kapasitas statis dan dinamis campuran).

Perubahan kapasitas hanya dengan node statis

  • JikaMinCount == MaxCount, saat meningkatkan MinCount (danMaxCount), cluster akan dikonfigurasi dengan memperluas jumlah node statis ke nilai baru MinCount <Queue/Name>-st-<ComputeResource/Name>-<new_MinCount> dan sistem akan terus mencoba meluncurkan instans Amazon EC2 untuk memenuhi kapasitas statis baru yang diperlukan.

  • JikaMinCount == MaxCount, saat mengurangi MinCount (danMaxCount) jumlah N, cluster akan dikonfigurasi dengan menghapus node statis N terakhir <Queue/Name>-st-<ComputeResource/Name>-<old_MinCount - N>...<old_MinCount>] dan sistem akan menghentikan instans Amazon EC2 yang sesuai.

    • Keadaan awal MinCount = MaxCount = 100

    • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
    • Update -30 pada MinCount dan MaxCount: MinCount = MaxCount = 70

    • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 70 idle queue1-st-c5xlarge-[1-70]

Perubahan kapasitas dengan node campuran

JikaMinCount < MaxCount, ketika meningkat MinCount dengan jumlah N (dengan asumsi MaxCount akan tetap tidak berubah), cluster akan dikonfigurasi dengan memperluas jumlah node statis ke nilai baru MinCount (old_MinCount + N): <Queue/Name>-st-<ComputeResource/Name>-<old_MinCount + N> dan sistem akan terus mencoba meluncurkan instans Amazon EC2 untuk memenuhi kapasitas statis baru yang diperlukan. Selain itu, untuk menghormati MaxCount kapasitas sumber daya komputasi, konfigurasi cluster diperbarui dengan menghapus node dinamis N terakhir: <Queue/Name>-dy-<ComputeResource/Name>-[<MaxCount - old_MinCount - N>...<MaxCount - old_MinCount>] dan sistem akan menghentikan instans Amazon EC2 yang sesuai.

  • Keadaan awal: MinCount = 100; MaxCount = 150

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
  • Perbarui +30 ke MinCount : MinCount = 130 (MaxCount = 150)

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 20 idle~ queue1-dy-c5xlarge-[1-20] queue1* up infinite 130 idle queue1-st-c5xlarge-[1-130]

JikaMinCount < MaxCount, saat meningkatkan MinCount dan MaxCount dengan jumlah N yang sama, cluster akan dikonfigurasi dengan memperluas jumlah node statis ke nilai baru MinCount (old_MinCount + N): <Queue/Name>-st-<ComputeResource/Name>-<old_MinCount + N> dan sistem akan terus mencoba meluncurkan instans Amazon EC2 untuk memenuhi kapasitas statis baru yang diperlukan. Selain itu, tidak ada perubahan yang akan dilakukan pada jumlah node dinamis untuk menghormati yang baru

MaxCountnilai.

  • Keadaan awal: MinCount = 100; MaxCount = 150

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
  • Perbarui +30 ke MinCount : MinCount = 130 (MaxCount = 180)

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 20 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 130 idle queue1-st-c5xlarge-[1-130]

JikaMinCount < MaxCount, ketika mengurangi MinCount jumlah N (dengan asumsi MaxCount akan tetap tidak berubah), cluster akan dikonfigurasi dengan menghapus node statis N terakhir node statis <Queue/Name>-st-<ComputeResource/Name>-[<old_MinCount - N>...<old_MinCount> dan sistem akan menghentikan instance Amazon EC2 yang sesuai. Selain itu, untuk menghormati MaxCount kapasitas sumber daya komputasi, konfigurasi cluster diperbarui dengan memperluas jumlah node dinamis untuk mengisi celahMaxCount - new_MinCount: <Queue/Name>-dy-<ComputeResource/Name>-[1..<MazCount - new_MinCount>]. Dalam hal ini, karena itu adalah node dinamis, tidak ada instans Amazon EC2 baru yang akan diluncurkan kecuali penjadwal memiliki pekerjaan di pending pada node baru.

  • Keadaan awal: MinCount = 100; MaxCount = 150

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
  • Perbarui -30 pada MinCount : MinCount = 70 (MaxCount = 120)

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 80 idle~ queue1-dy-c5xlarge-[1-80] queue1* up infinite 70 idle queue1-st-c5xlarge-[1-70]

JikaMinCount < MaxCount, saat mengurangi MinCount dan MaxCount dengan jumlah N yang sama, cluster akan dikonfigurasi dengan menghapus node statis N terakhir <Queue/Name>-st-<ComputeResource/Name>-<old_MinCount - N>...<oldMinCount>] dan sistem akan menghentikan instans Amazon EC2 yang sesuai.

Selain itu, tidak ada perubahan yang akan dilakukan pada jumlah node dinamis untuk menghormati MaxCount nilai baru.

  • Keadaan awal: MinCount = 100; MaxCount = 150

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
  • Perbarui -30 pada MinCount : MinCount = 70 (MaxCount = 120)

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 80 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 70 idle queue1-st-c5xlarge-[1-70]

JikaMinCount < MaxCount, saat mengurangi MaxCount jumlah N (dengan asumsi MinCount akan tetap tidak berubah), cluster akan dikonfigurasi dengan menghapus node dinamis N terakhir <Queue/Name>-dy-<ComputeResource/Name>-<old_MaxCount - N...<oldMaxCount>] dan sistem akan menghentikan instance Amazon EC2 yang sesuai jika mereka berjalan. Tidak ada dampak yang diharapkan pada node statis.

  • Keadaan awal: MinCount = 100; MaxCount = 150

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
  • Perbarui -30 pada MaxCount : MinCount = 100 (MaxCount = 120)

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 20 idle~ queue1-dy-c5xlarge-[1-20] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]

Dampak pada Pekerjaan

Dalam semua kasus di mana node dihapus dan instans Amazon EC2 dihentikan, pekerjaan sbatch yang berjalan pada node yang dihapus akan diantrian ulang, kecuali tidak ada node lain yang memenuhi persyaratan pekerjaan. Dalam kasus terakhir ini pekerjaan akan gagal dengan status NODE_FAIL dan menghilang dari antrian; jika demikian, itu harus dikirim ulang secara manual.

Jika Anda berencana untuk melakukan pembaruan pengubahan ukuran cluster, Anda dapat mencegah pekerjaan berjalan di node yang akan dihapus selama pembaruan yang direncanakan. Ini dimungkinkan dengan mengatur node yang akan dihapus dalam pemeliharaan. Perlu diketahui bahwa menyetel node dalam pemeliharaan tidak akan memengaruhi pekerjaan yang pada akhirnya sudah berjalan di node.

Misalkan dengan pembaruan pengubahan ukuran cluster yang direncanakan Anda akan menghapus nodeqeueu-st-computeresource-[9-10]. Anda dapat membuat Slurm reservasi dengan perintah berikut

sudo -i scontrol create reservation ReservationName=maint_for_update user=root starttime=now duration=infinite flags=maint,ignore_jobs nodes=qeueu-st-computeresource-[9-10]

Ini akan membuat Slurm reservasi bernama maint_for_update pada nodeqeueu-st-computeresource-[9-10]. Dari saat reservasi dibuat, tidak ada lagi pekerjaan yang bisa berjalan ke nodeqeueu-st-computeresource-[9-10]. Perlu diketahui bahwa reservasi tidak akan mencegah pekerjaan akhirnya dialokasikan pada nodeqeueu-st-computeresource-[9-10].

Setelah pembaruan pengubahan ukuran klaster, jika Slurm reservasi ditetapkan hanya pada node yang telah dihapus selama pembaruan pengubahan ukuran, reservasi pemeliharaan akan dihapus secara otomatis. Jika sebaliknya Anda telah membuat Slurm reservasi pada node yang masih ada setelah pembaruan pengubahan ukuran cluster, kami mungkin ingin menghapus reservasi pemeliharaan pada node setelah pembaruan pengubahan ukuran dilakukan, dengan menggunakan perintah berikut

sudo -i scontrol delete ReservationName=maint_for_update

Untuk detail tambahan tentang Slurm reservasi, lihat dokumen SchedMD resmi di sini.

Proses pembaruan klaster tentang perubahan kapasitas

Setelah perubahan konfigurasi penjadwal, langkah-langkah berikut dijalankan selama proses pembaruan cluster:

  • Berhenti AWS ParallelCluster clustermgtd (supervisorctl stop clustermgtd)

  • Hasilkan konfigurasi Slurm partisi yang diperbarui dari AWS ParallelCluster konfigurasi

  • Mulai ulang slurmctld (dilakukan melalui resep layanan Chef)

  • Periksa slurmctld status (systemctl is-active --quiet slurmctld.service)

  • Muat ulang konfigurasi Slurm (scontrol reconfigure)

  • Mulai clustermgtd (supervisorctl start clustermgtd)