compute-hyperv/compute_hyperv/nova
Lucian Petrut 91476d7417 Add distributed lock helpers
This change imports the "coordination" module, which is shared by
Cinder, Manila and a few other projects. At some point, it should
probably be submitted to oslo.

It uses tooz, an OpenStack library, in order to provide distributed
locks. Tooz supports various backends, such as etcd, mysql, file
locks, redis, zookeeper, etc.

The lock backend can be selected using the CONF.coordination.backend_url
config option.

A subsequent change will use distributed locks for the cluster driver,
preventing race conditions when handling failovers.

Related-Bug: #1796673

Change-Id: I5a7d79fe1cf6ce13ff9d20d7618886add6221300
2018-10-29 13:55:00 +02:00
..
cluster Switch to new instance failover listener 2018-10-29 13:54:59 +02:00
README.rst move to compute_hyperv namespace 2017-08-09 09:00:32 +00:00
__init__.py move to compute_hyperv namespace 2017-08-09 09:00:32 +00:00
block_device_manager.py sync: Update renamed method usage 2018-01-17 11:08:44 +02:00
conf.py Add distributed lock helpers 2018-10-29 13:55:00 +02:00
constants.py Lock snapshot/destroy operations 2018-02-13 14:30:18 +00:00
coordination.py Add distributed lock helpers 2018-10-29 13:55:00 +02:00
driver.py Merge "Enable trusted certificates support" 2018-08-06 09:36:18 +00:00
eventhandler.py Ignore external VMs when handling serial console output 2017-08-09 13:37:04 +03:00
hostops.py hyperv: report disk_available_least field 2017-09-19 12:26:54 +00:00
imagecache.py Enable trusted certificates support 2018-08-02 17:36:50 +03:00
livemigrationops.py move to compute_hyperv namespace 2017-08-09 09:00:32 +00:00
migrationops.py Cleanup migration files 2017-12-21 12:22:22 +02:00
pathutils.py Add driver methods checking for shared storage 2017-12-21 12:22:13 +02:00
pdk.py trivial: Changes files Windows style line ending to Unix style 2018-08-02 06:35:50 -07:00
rdpconsoleops.py move to compute_hyperv namespace 2017-08-09 09:00:32 +00:00
serialconsolehandler.py Flush console log file before retrieving content 2018-01-05 18:49:06 +02:00
serialconsoleops.py Flush console log file before retrieving content 2018-01-05 18:49:06 +02:00
serialproxy.py move to compute_hyperv namespace 2017-08-09 09:00:32 +00:00
snapshotops.py Lock snapshot/destroy operations 2018-02-13 14:30:18 +00:00
vif.py move to compute_hyperv namespace 2017-08-09 09:00:32 +00:00
vmops.py Merge "Lock snapshot/destroy operations" 2018-02-13 14:55:29 +00:00
volumeops.py Cluster driver: Blacklist iSCSI/FC volume drivers 2018-02-16 16:29:11 +02:00

README.rst

Hyper-V Volumes Management

To enable the volume features, the first thing that needs to be done is to enable the iSCSI service on the Windows compute nodes and set it to start automatically.

sc config msiscsi start= auto net start msiscsi

In Windows Server 2012, it's important to execute the following commands to prevent having the volumes being online by default:

diskpart san policy=OfflineAll exit

How to check if your iSCSI configuration is working properly:

On your OpenStack controller:

1. Create a volume with e.g. "nova volume-create 1" and note the generated volume id

On Windows:

  1. iscsicli QAddTargetPortal <your_iSCSI_target>
  2. iscsicli ListTargets

The output should contain the iqn related to your volume: iqn.2010-10.org.openstack:volume-<volume_id>

How to test Boot from volume in Hyper-V from the OpenStack dashboard:

  1. Fist of all create a volume
  2. Get the volume ID of the created volume

3. Upload and untar to the Cloud controller the next VHD image: http://dev.opennebula.org/attachments/download/482/ttylinux.vhd.gz 4. sudo dd if=/path/to/vhdfileofstep3 of=/dev/nova-volumes/volume-XXXXX <- Related to the ID of step 2 5. Launch an instance from any image (this is not important because we are just booting from a volume) from the dashboard, and don't forget to select boot from volume and select the volume created in step2. Important: Device name must be "vda".