Add ephemeral OS disk support to Azure Batch pools#7259
Draft
adamrtalbot wants to merge 1 commit into
Draft
Conversation
Add `ephemeralOsDisk` pool-level config option to nf-azure. When enabled, the pool's VM configuration uses an ephemeral OS disk placed on the node's local cache disk instead of remote Azure storage. Generated by Claude Code Signed-off-by: adamrtalbot <12817534+adamrtalbot@users.noreply.github.com>
✅ Deploy Preview for nextflow-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Collaborator
Author
|
This behaviour is worse than normal. With ephemeral disks, we carve out a virtual 64GB of the data disk which is used for the OS. This can't be resized, so this is effectively worse than having a separate OS disk to store docker containers which we can bump to 1023GB. # without ephemeral OS disk:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 64G 0 disk
|-sda1 8:1 0 63G 0 part /etc/ssl/certs
| /etc/rdma/dat.conf
| /etc/hosts
| /etc/hostname
| /etc/resolv.conf
| /etc/pki
| /etc/sudoers
| /etc/group
| /etc/passwd
| /etc/dat.conf
|-sda14 8:14 0 4M 0 part
|-sda15 8:15 0 106M 0 part
`-sda16 259:0 0 913M 0 part
sdb 8:16 0 150G 0 disk
`-sdb1 8:17 0 150G 0 part /mnt/batch/tasks
sr0 11:0 1 630K 0 rom
Filesystem Size Used Avail Use% Mounted on
overlay 61G 43G 19G 70% /
tmpfs 64M 0 64M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/root 61G 43G 19G 70% /etc/pki
/dev/sdb1 147G 41M 140G 1% /mnt/batch/tasks
tmpfs 16G 0 16G 0% /proc/acpi
tmpfs 16G 0 16G 0% /proc/scsi
tmpfs 16G 0 16G 0% /sys/firmware
# with ephemeral OS disk:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 64G 0 disk
|-sda1 8:1 0 63G 0 part /etc/rdma/dat.conf
| /etc/ssl/certs
| /etc/hosts
| /etc/hostname
| /etc/resolv.conf
| /etc/sudoers
| /etc/group
| /etc/passwd
| /etc/dat.conf
| /etc/pki
|-sda14 8:14 0 4M 0 part
|-sda15 8:15 0 106M 0 part
`-sda16 259:0 0 913M 0 part
sdb 8:16 0 86G 0 disk
`-sdb1 8:17 0 86G 0 part /mnt/batch/tasks
sr0 11:0 1 630K 0 rom
Filesystem Size Used Avail Use% Mounted on
overlay 61G 43G 19G 70% /
tmpfs 64M 0 64M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/root 61G 43G 19G 70% /etc/pki
/dev/sdb1 85G 41M 80G 1% /mnt/batch/tasks <- note this is smaller!
tmpfs 16G 0 16G 0% /proc/acpi
tmpfs 16G 0 16G 0% /proc/scsi
tmpfs 16G 0 16G 0% /sys/firmwareClassic Microsoft 🙄 |
Member
|
do you still want to add the config option? seems like a simple addition, but I'd rather not add another lever if it is strictly worse |
Collaborator
Author
|
Let's not merge. Handling local storage is already an absolute nightmare on Azure and an extra variable for people to get wrong isn't going to help |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Azure Batch supports ephemeral OS disks, which place the node OS disk on local/cache storage instead of remote Azure storage. This improves node performance and lowers cost. nf-azure had no way to enable it.
What
azure.batch.pools.<name>.ephemeralOsDiskconfig option (boolean, defaultfalse)poolVmConfig()attaches anOSDiskwith ephemeral settings on the cache disk (DiffDiskPlacement.CACHE_DISK) when enabledconfig.mdxNotes
🤖 Generated with Claude Code