From b290757020e500bc9ad5875c0c00f1a3ee433eb8 Mon Sep 17 00:00:00 2001 From: Michal Nowak Date: Mon, 13 Nov 2017 15:46:26 +0100 Subject: [PATCH 1/2] svirt: Set NUMDISKS=4 when RAIDVEVEL is defined --- backend/svirt.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/svirt.pm b/backend/svirt.pm index 934d6baf10b..22ed987366f 100644 --- a/backend/svirt.pm +++ b/backend/svirt.pm @@ -37,7 +37,7 @@ sub do_start_vm { my ($self) = @_; my $vars = \%bmwqemu::vars; - $vars->{NUMDISKS} ||= 1; + $vars->{NUMDISKS} ||= defined($vars->{RAIDLEVEL}) ? 4 : 1; # truncate the serial file open(my $sf, '>', $self->{serialfile}); From d7e160a7197911aae5709fe0c0f48e711f56222f Mon Sep 17 00:00:00 2001 From: Michal Nowak Date: Mon, 13 Nov 2017 15:47:09 +0100 Subject: [PATCH 2/2] Xen: Support multiple HDDs To support RAID test on svirt, multiple-disk support needs to be added to bootloaded_svirt. For this to work, we can't use IDE device, because it seems that Xen devices are in presence of IDE device connected to IDE controller - but we can't connect more than four devices to IDE controller. So switching to CDROM to SCSI makes the rest of the disks to attach to SCSI controller (SCSI limit is 64 devices). Validation runs on Xen HVM: * JeOS: http://assam.suse.cz/tests/1003 * CaaSP: http://assam.suse.cz/tests/1005 * SLE15 lvm+RAID1: http://assam.suse.cz/tests/993 --- consoles/sshVirtsh.pm | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/consoles/sshVirtsh.pm b/consoles/sshVirtsh.pm index a077b4cc1d7..bbf1037c4d1 100644 --- a/consoles/sshVirtsh.pm +++ b/consoles/sshVirtsh.pm @@ -384,33 +384,15 @@ sub add_disk { my $bus_type; my $dev_id = $args->{dev_id}; if ($self->vmm_family eq 'xen') { - if ($self->vmm_type eq 'hvm') { - if ($args->{cdrom}) { - $dev_type = "hd$dev_id"; - $bus_type = 'ide'; - } - else { - $dev_type = "hd$dev_id"; - $bus_type = 'xen'; - } - } - elsif ($self->vmm_type eq 'linux') { - if ($args->{cdrom}) { - $dev_type = "xvd$dev_id"; - } - else { - $dev_type = "xvd$dev_id"; - } - $bus_type = 'xen'; + if ($args->{cdrom}) { + $dev_type = "sd$dev_id"; + $bus_type = 'scsi'; } + $dev_type = "xvd$dev_id"; + $bus_type = 'xen'; } elsif ($self->vmm_family eq 'vmware') { - if ($args->{cdrom}) { - $dev_type = "hd$dev_id"; - } - else { - $dev_type = "hd$dev_id"; - } + $dev_type = "hd$dev_id"; $bus_type = 'ide'; } elsif ($self->vmm_family eq 'kvm') {