(Disclaimer: I am by no means an expert with XenServer. So please don’t take anything you read here for granted. It’s my own experience and what I found in documentation and online.)
There is at least one reason why installing updates for XenServer via XenCenter may fail (with unhelpful error messages of course): You haven’t got created any Storage Repository yet.
One might think that this is pretty unusual but your’s truly has actually managed to run into this problem. Why? Because I didn’t install the drivers necessary for accessing the hardware RAID controller (in my case the LSI megaraid package). Usually you do that during the XenServer setup but I was at that time not aware that I would actually need a driver. And thus apart from the boot disk there was nowhere to put a Storage Repository. And I didn’t want to put that on the boot ssd. So I ended up with a XenServer installation that didn’t have any Storage Repositories.
So, what can you do?
You can attach a single SATA hard disk to the system and configure it as a storage.
One might think that is easy to do using XenCenter since there is a menu entry Storage -> New SR, but no, there you can only add NVS, iSCSI, Hardware HBA or Software FCoE. Local drives aren’t even mentioned.
So you have to resort to the xe command as described here:
- Shut down and turn off the computer
- Attach the hard disk and boot
- On the console use fdisk to get information about the new hard disk
fdisk -l
Search for the new hard drive in the list. It will be the last on the list and it is indicated as /dev/sdc. c is the position it is in. Generally, it starts at a, and the list continues. You can verify the device path using the SCSI ID in /dev/disk/by-id directory by listing out the contents.
Note: I wouldn’t rely on the drive being the last one in the list. Definitely verify the drive parameters that fdisk outputs. - Run the following command from the command line interface (in the console or on a computer with XenCenter installed):
xe sr-create name-label=<Name of Storage> shared=false device-config:device=<Path of the Storage device> type=lvm content-type=user
- Name of Storage is the name of the Storage Repository you require
- Path of the Storage device is the path as noted in the preceding tasks, /dev/sdc)
Now, the installed hard drive is visible in the XenServer Console.
Note: This works fine if you run it on the server console. If you run it from a remote computer with XenCenter, you need additional parameters to actually connect to the server. In that case insert the following between xe and sr-create:
-s <server> -u <username> -pw <password>
- server is the server’s name or IP address
- username is the user to logon (e.g. root)
- password is the password of the given user
And yes, it worked. After adding this Storage Repository I could install the updates.