** Description changed:

- Some Azure instances such as L32 or G5 have very large ephemeral disks
- which are partitioned via GPT vs. smaller ephemeral disks that have dos
- disklabels.
+ === Begin SRU Template ===
+ [Impact]
+ On Azure, cloud-init handles re-formatting the ephemeral disk.
+ The contents of the ephemeral disk for a system will be replaced with
+ a stock ephemeral disk in the following scenarios:
+  a.) first boot
+  b.) after a resize.
+  c.) after a VM has been migrated from one host to another.
+ 
+ That ephemeral disk is either
+  1. mbr partitioned with 1 ntfs partition
+  2. gpt partitioned with 2 partitions, a msft reserved partition and a
+     ntfs partition.  This scenario is newer, and only occurs on
+     larger instance types that have large ephemeral disks.
+ 
+ cloud-init previously did not handle '2' above.
+ 
+ [Test Case]
+ Generically this is re-creatable by:
+  1.) launch an instance on Azure
+  2.) resize it to a L32 or G5 size
+  3.) check to see that the ephemeral disk (/dev/disk/cloud/azure_resource)
+      has been formatted to ext4.
+ 
+ It is more easily recreated for testing and verification by:
+ 
+ 1. launch instance on azure
+ 2. re-partition the ephemeral disk to look like a "clean" disk above
+ 3. remove old logs, reboot
+    $ dir=logs-$(date +"%Y%m%d-%H%M%S");
+    $ mkdir -p $dir; mv /var/log/cloud-init* $dir
+ 4. ssh back in, expect that this the disk has an ext4 filesystem on it.
+    And that it is mounted on /mnt.
+ 
+    $ grep reformattable= /var/log/cloud-init.log
+    2017-05-12 15:14:57,125 - DataSourceAzure.py[DEBUG]: reformattable=False: 
partition 1 (/dev/sdb1) on device /dev/disk/cloud/azure_resource was not ntfs 
formatted
+ 
+    Or, if it was formatted, you'll see something like:
+    2017-05-12 15:17:47,021 - DataSourceAzure.py[DEBUG]: reformattable=True: 
partition 2 (/dev/sdb2) on device /dev/disk/cloud/azure_resource was ntfs 
formatted and had no important files. Safe for reformatting.
+ 
+    $ grep /mnt /proc/mounts
+    /dev/sdb1 /mnt ext4 rw,relatime,data=ordered 0 0
+ 
+ 
+ [Regression Potential]
+ The change makes cloud-init accept another situation when it decides
+ to be reformat a disk.  Reformatting of a disk could result in loss of
+ customer data if the decision to do so results in a false positive.
+ 
+ The fix came with some fairly extensive unit tests (TestCanDevBeReformatted)
+ on the 'can_dev_be_reformatted' method.
+ 
+ [Other Info]
+ Upstream commit at
+   https://git.launchpad.net/cloud-init/commit/?id=31b6f1732
+ 
+ === End SRU Template ===
+ 
+ 
+ Some Azure instances such as L32 or G5 have very large ephemeral disks which 
are partitioned via GPT vs. smaller ephemeral disks that have dos disklabels.
  
  At first boot of an instance the ephemeral disk is prepared and
  formatted properly. But if the instance is deallocated and then
  reallocated (thus receiving a new ephemeral disk) then cloud-init does
  not handle reformatting GPT partition ephemeral disks properly.
  Therefore /mnt is never mounted again.
  
  Test cases:
   1. Deploy an L32(s) VM on Azure
   2. Log in and ensure that the ephemeral disk is formatted and mounted to /mnt
   3. Via the portal you can "Redeploy" the VM to a new Azure Host (or 
alternatively stop and deallocate the VM for some time, and then 
restart/reallocate the VM).
  
  Expected Results:
   - After reallocation we expect the ephemeral disk to be formatted and 
mounted to /mnt.
  
  Actual Results:
   - After reallocation /mnt is not mounted and there are errors in the 
cloud-init log.
  
  *This was tested on Ubuntu 16.04 - but may affect other releases.
  
  Note: This bug a regression from previous cloud-init releases. GPT
  support for Azure ephemeral disk handling was added to cloud-init via
  this bug: https://bugs.launchpad.net/ubuntu/+source/cloud-
  init/+bug/1422919.
  
  Related bugs:
-  * bug 1691489: fstab entries written by cloud-config may not be mounted
+  * bug 1691489: fstab entries written by cloud-config may not be mounted

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1686514

Title:
  Azure: cloud-init does not handle reformatting GPT partition ephemeral
  disks

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1686514/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to