Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for multiple SCSI controllers #1328

Merged
merged 12 commits into from
Mar 28, 2022

Conversation

ambarve
Copy link
Contributor

@ambarve ambarve commented Mar 14, 2022

Enable using upto 4 SCSI controllers for LCOW UVMs. HCS currently doesn't respect the
SCSI controller number provided with the Add SCSI disk requests. Hence, the SCSI disk can
show up at some different controller inside the LCOW UVM. To avoid this, now we use GUIDs
to represent each controller and use that GUID with the Add SCSI disk request.
GCS code is also modified to identify the controller number from the controller GUID.

Signed-off-by: Amit Barve ambarve@microsoft.com

@ambarve ambarve requested a review from a team as a code owner March 14, 2022 16:26
Enable using upto 4 SCSI controllers for LCOW UVMs. HCS currently doesn't respect the
SCSI controller number provided with the Add SCSI disk requests. Hence, the SCSI disk can
show up at some different controller inside the LCOW UVM. To avoid this, now we use GUIDs
to represent each controller and use that GUID with the Add SCSI disk request.
GCS code is also modified to identify the controller number from the controller GUID.

Signed-off-by: Amit Barve <ambarve@microsoft.com>
Signed-off-by: Amit Barve <ambarve@microsoft.com>
@ambarve ambarve marked this pull request as draft March 14, 2022 17:09
Signed-off-by: Amit Barve <ambarve@microsoft.com>
@ambarve ambarve marked this pull request as ready for review March 14, 2022 22:30
Signed-off-by: Amit Barve <ambarve@microsoft.com>
@dcantah dcantah self-assigned this Mar 15, 2022
internal/uvm/constants.go Outdated Show resolved Hide resolved
internal/uvm/constants.go Outdated Show resolved Hide resolved
internal/uvm/constants.go Outdated Show resolved Hide resolved
Use Camel case for GUID array, include comment above each GUID to make it easier to
search. Add a check to make sure WCOW is never created with zero SCSI controllers.

Signed-off-by: Amit Barve <ambarve@microsoft.com>
internal/guest/storage/scsi/scsi.go Show resolved Hide resolved
internal/uvm/constants.go Outdated Show resolved Hide resolved
internal/uvm/constants.go Outdated Show resolved Hide resolved
Earlier changes to support several SCSI controllers modified the GCS protocol. This commit
modifies the code to keep the same GCS protocol and maintain the list of controller GUIDs
inside GCS.

Signed-off-by: Amit Barve <ambarve@microsoft.com>
internal/uvm/create.go Outdated Show resolved Hide resolved
Also, enable 4 SCSI controllers on LCOW only if no vpmem multimapping is enabled.

Signed-off-by: Amit Barve <ambarve@microsoft.com>
Signed-off-by: Amit Barve <ambarve@microsoft.com>
internal/uvm/create_lcow.go Outdated Show resolved Hide resolved
internal/uvm/create.go Outdated Show resolved Hide resolved
Earlier we had disabled VPMEM devices for container layer but the UVM was still using
VPMEM for rootfs. This commit changes that and forces the UVM to use initrd for rootfs.
Also, adds an error if SCSI controller count for WCOW is not set to 1.

Signed-off-by: Amit Barve <ambarve@microsoft.com>
Signed-off-by: Amit Barve <ambarve@microsoft.com>
Signed-off-by: Amit Barve <ambarve@microsoft.com>
Signed-off-by: Amit Barve <ambarve@microsoft.com>
@ambarve
Copy link
Contributor Author

ambarve commented Mar 28, 2022

@kevpar , @dcantah & @anmaxvl Can you PTAL?

Copy link
Member

@kevpar kevpar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@anmaxvl anmaxvl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@dcantah dcantah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ambarve ambarve merged commit d36cc7c into microsoft:master Mar 28, 2022
@ambarve ambarve deleted the scsi_controller_guid branch August 9, 2022 04:06
@ambarve ambarve restored the scsi_controller_guid branch August 9, 2022 04:06
princepereira pushed a commit to princepereira/hcsshim that referenced this pull request Aug 29, 2024
* Support for multiple SCSI controllers

Enable using upto 4 SCSI controllers for LCOW UVMs. HCS currently doesn't respect the
SCSI controller number provided with the Add SCSI disk requests. Hence, the SCSI disk can
show up at some different controller inside the LCOW UVM. To avoid this, now we use GUIDs
to represent each controller and use that GUID with the Add SCSI disk request.
GCS code is also modified to identify the controller number from the controller GUID. Now if a LCOW pod is created with an annotation that sets VPMEM device count to 0, we will automatically enable 4 SCSI controllers. Even the rootfs.vhd will be attached via SCSI in that scenario. 

Signed-off-by: Amit Barve <ambarve@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants