PDA

View Full Version : SLES 12 not able to access virtual devices defined



x0500hl
10-Dec-2014, 15:10
I need some assistance with my recent installation of SLES 12. I am trying to implement SLES 12 using the principles as found in IBM Redbook "The Virtualization Cookbook for IBM zVM 6.3, RHEL 6.4, and SLES 11 SP3" (there isn't a Redbook for SLES 12 yet). I am tweaking the process as needed as some things don't exists in SLES 12 (i.s. there is no /etc/zipl.conf file to edit any longer). The hypervisor is z/VM 6.3 (non-SSI).

Where I am stuck in the process is in section 15.4.9 'Install the cmsfs package'. I was able to install the cmsfs package successfully but am unable to test that it is functioning.

I can't figure out why Linux is unable to 'see' all of the virtual devices that are defined to the guest. The only devices known to Linux are virtual devices 0100 and 0101. The PROFILE EXEC creates two virtual swap devices at 0300 and 0301 but they aren't seen by Linux either.



Bus-ID Status Name Device Type BlkSz Size Blocks
================================================== ============================
0.0.0100 active dasda 94:0 ECKD 4096 7042MB 1802880
0.0.0101 active dasdb 94:4 ECKD 4096 7042MB 1802880


Here is the output of a 'q disk' command that I issued after shutting down Linux, ipl'ed CMS, and responded 'n' to the prompt to IPL Linux.



LABEL VDEV M STAT CYL TYPE BLKSZ FILES BLKS USED-(%) BLKS LEFT BLK TOTAL
LXM192 191 A R/O 500 3390 4096 7 9009-10 80991 90000
LXSWAP 300 B R/W FB 9336 512 1 524288-99 0 524288
TCM592 592 C R/O 140 3390 4096 858 12994-52 12206 25200
LXSWAP 301 D R/W FB 9336 512 1 1048576-99 0 1048576
MNT190 190 S R/O 207 3390 4096 697 18288-49 18972 37260
MNT19E 19E Y/S R/O 500 3390 4096 1131 30869-34 59131 90000


I am able to issue command 'vmcp link maint630 191 f191 read' in PuTTY whcih seems to work fine though I can't find anything for device f191 in /dev or /udev/rules.d. When I issue 'chccwdev -e 0.0.f191' Linux returns 'Device 0.0.f191 not found'.

Also, if I issue 'swapon -s' the output is only the physical swap disk that was created during the installation of Linux, it also doesn't show the virtual swap disks, 0300 and 0301, for the guest.



Filename Type Size Used Priority
/dev/dasda2 partition 1015820 15792 -1


I'm thinking that the devices are possibly being masked by the double bootloader process now used on System z. SLES 12 uses zipl to load the grub2 bootloaded and grub2 loads Linux. I've searched Google and have not found anything that i could try. I have SLES 11 SP3 guests on this same lpar that do not exhibit this issue.

Does anyone have any ideas?


USER DIRECTORY


*
PROFILE LNXDFLTN
LOGONBY GMATTH HLINKE DCULLE
COMMAND SET VSWITCH VSWITCH1 GRANT &USERID PORTTYPE ACCESS
COMMAND DEFINE NIC 1100 TYPE QDIO
COMMAND COUPLE 1100 TO SYSTEM VSWITCH1
IPL CMS PARM AUTOCR
CONSOLE 009 3215 T
SPOOL 00C 2540 READER *
SPOOL 00D 2540 PUNCH A
SPOOL 00E 1403 A
LINK MAINT 190 190 RR
LINK MAINT 19D 19D RR
LINK MAINT 19E 19E RR
LINK LNXMAINT 192 191 RR
LINK TCPMAINT 592 592 RR
*----------------------------------------------------------------------
* Linux section
*----------------------------------------------------------------------
USER LNXMAINT Q12WE34R 16M 128M ABCDEFG
INCLUDE IBMDFLT
MDISK 191 3390 7403 050 631W01 MR READ WRITE MULTIPLE
MDISK 192 3390 0001 500 631W02 MR READ WRITE MULTIPLE
*----------------------------------------------------------------------
* SLES 12
*----------------------------------------------------------------------
USER LNXADMIN Q12WE34R 256M 1G BG
INCLUDE LNXDFLTN
MDISK 100 3390 0001 10016 LNX005 MR ALL SOME FEW
MDISK 101 3390 0001 10016 LNX006 MR ALL SOME FEW



PROFILE EXEC


/* PROFILE EXEC for Linux virtual servers */
'CP SET RUN ON'
'CP SET PF11 RETRIEVE FORWARD'
'CP SET PF12 RETRIEVE'
'ACC 592 C'
'SWAPGEN 300 524288' /* create 256M VDISK swap space at 300 */
'SWAPGEN 301 1048576' /* create 512M VDISK swap space at 301 */
'PIPE CP QUERY' userid() '| var user'
parse value user with id . dsc .
if (dsc = 'DSC') then /* user is disconnected */
'CP IPL 100'
else /* user is interactive -> prompt */
do
say 'Do you want to IPL Linux from minidisk 100? y/n'
parse upper pull answer .
if (answer = 'Y') then 'CP IPL 100'
end



Harley

jmozdzen
10-Dec-2014, 16:05
Hi Harley,

oh, how I miss the times I was in a position to toy around with /370s and /390s... but since I had lost contact with those prior to "Linux on real servers" times ( ;) ), I cannot help with the actual technical issue.

What I do recommend, though, is to get in touch with either Lydia or Berthold (see page xvi of the cookbook), I wouldn't be surprised if they're working on a new edition covering SLES12 ;)

Regards,
Jens

x0500hl
10-Dec-2014, 19:03
Thanks Jens, I will do that.

x0500hl
15-Dec-2014, 17:59
I found the solution with help from a listserver, LINUX-390@VM.MARIST.EDU.

The problem is that I allowed the installation to use a blacklist feature for devices. This prevents Linux from allocating resources at boot time (and when a new device is defined via the 'vmcp link...' command). All devices are blacklisted unless they appear in /proc/cio_ignore.

The workaround (in my case) was to issue 'cio_ignore -r 0.0.vdev' between issuing 'vmcp link...' and 'chccwdev -e 0.0.vdev'.

vmcp link maint630 2cc 2cc read
cio_ignore -r 0.0.02cc
chccwdev -e 2cc
- access the disk as needed
chccwdev -d 2cc
vmcp det 2cc

The cio_ignore results are not persistent in that I rebooted after I accessed MAINT630's 2cc disk and it was blacklisted again after the reboot. The way to make this persistent is to add the device to /boot/zipl/active_devices.txt. The change takes effect at the next boot without the zipl bootloader needing to be rebuilt.


Harley