Azure / Azure/cyclecloud-slurm
Scheduler node with NVMe disk controller fails - CVOLUME cookbook has scsi hardcoded
- Dominant language
- Python
- Stars
- 84
- Forks
- 56
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 1
Description
Scheduler nodes cannot use VM types with NVMe disk controllers (e.g.,Standard_D8ads_v6) because the cvolume cookbook relies on `/dev/disk/azure/scsi1` when "Use Builtin NFS" is selected for Network Attached Storage.
See `/opt/cycle/jetpack/system/chef/chef-repo/cookbooks/cvolume/libraries/cvolume.rb:148`
```ruby
if luns
luns.each { |l| devices << ::File.realpath("/dev/disk/azure/scsi1/lun#{l}") }
end
```
`/dev/disk/azure/scsi1` does not exist with this VM type.
https://github.com/Azure/azure-vm-utils/blob/main/udev/80-azure-disk.rules provides a udev rules file which will enumerate the data disks (NVMe or SCSI) in `/dev/disk/azure/data/by-lun`
VM types with NVMe controllers can be use if the udev rule file is in place and the cvolume cookbook is updated to:
```ruby
if luns
luns.each { |l| devices << ::File.realpath("/dev/disk/azure/data/by-lun/#{l}") }
end
```
The following cloud-init script can be used to allow the scheduler to use VM types with NVMe disk controllers.
```yaml
#cloud-config
runcmd:
- curl -o /usr/lib/udev/rules.d/80-azure-disk.rules "https://raw.githubusercontent.com/Azure/azure-vm-utils/refs/heads/main/udev/80-azure-disk.rules"
- udevadm control --reload-rules && udevadm trigger
- sed -i 's|scsi1/lun|data/by-lun/|g' "/opt/cycle/jetpack/system/chef/chef-repo/cookbooks/cvolume/libraries/cvolume.rb"
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at /opt/cycle/jetpack/system/chef/chef-repo/cookbooks/cvolume/libraries/cvolume.rb:148 and review the Azure 80-azure-disk.rules file referenced in the issue. Check how data disks are exposed for both NVMe and SCSI controllers, then verify that selecting Builtin NFS resolves the requested LUNs on an NVMe scheduler node. Done means the cvolume cookbook works with both controller types.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, linux, ruby
- Domain
- cloud, infrastructure, operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100