Image Format
Version 14 (Nikos Skalkotos, 11/24/2011 03:58 pm)
1 | 1 | Nikos Skalkotos | h1. Image Format |
---|---|---|---|
2 | 1 | Nikos Skalkotos | |
3 | 9 | Constantinos Venetsanopoulos | The image format (@img_format@) is a required OS Provider parameter and snf-image will complain if not found |
4 | 13 | Nikos Skalkotos | Right now we support 4 different types of image formats: |
5 | 8 | Constantinos Venetsanopoulos | * @extdump@ |
6 | 8 | Constantinos Venetsanopoulos | * @ntfsdump@ |
7 | 1 | Nikos Skalkotos | * @diskdump@ |
8 | 13 | Nikos Skalkotos | * @custom@ _(unstable)_ |
9 | 1 | Nikos Skalkotos | |
10 | 13 | Nikos Skalkotos | h2. extdump & ntfsdump image formats |
11 | 4 | Nikos Skalkotos | |
12 | 4 | Nikos Skalkotos | Those two formats are raw copies (using dd) of partitions hosting Linux systems on ext{2,3,4} and Windows systems on ntfs filesystems respectively. |
13 | 4 | Nikos Skalkotos | |
14 | 5 | Nikos Skalkotos | Partitions hosting a Windows or Linux system that are suitable for dumping should have the following properties: |
15 | 1 | Nikos Skalkotos | * Be the first partition in the filesystem |
16 | 5 | Nikos Skalkotos | * The OS they host should not depend on any other partitions |
17 | 1 | Nikos Skalkotos | * Start at sector 2048 |
18 | 13 | Nikos Skalkotos | * Have a bootloader installed in the boot sector of the partition (not MBR) |
19 | 5 | Nikos Skalkotos | * Have the root device in /etc/fstab specified in a persistent way, using UUID or LABEL (for extdump only) |
20 | 3 | Nikos Skalkotos | |
21 | 4 | Nikos Skalkotos | h3. Known Issues |
22 | 1 | Nikos Skalkotos | |
23 | 1 | Nikos Skalkotos | * For linux systems, having grub installed in the partition is fragile and things can go wrong when resizing the partitions, especially when shrinking. |
24 | 3 | Nikos Skalkotos | * Swap space is not supported. |
25 | 3 | Nikos Skalkotos | * More complicated partition schemes are not supported. |
26 | 3 | Nikos Skalkotos | |
27 | 13 | Nikos Skalkotos | h2. diskdump image format |
28 | 1 | Nikos Skalkotos | |
29 | 7 | Nikos Skalkotos | Diskdump is a newer format that overcomes most of the aforementioned issues. This format is a raw copy (dd) of a whole disk. |
30 | 1 | Nikos Skalkotos | |
31 | 7 | Nikos Skalkotos | This design decision has the following benefits: |
32 | 5 | Nikos Skalkotos | * Swap partitions are supported |
33 | 5 | Nikos Skalkotos | * The system may use multiple partitions: |
34 | 5 | Nikos Skalkotos | ** dedicated partitions for /boot, /home etc in linux |
35 | 5 | Nikos Skalkotos | ** system and boot partition in Windows |
36 | 7 | Nikos Skalkotos | * There are no restrictions on starting sectors of partitions |
37 | 5 | Nikos Skalkotos | |
38 | 8 | Constantinos Venetsanopoulos | Although diskdump is a lot more flexible than the older formats, there are still some rules to follow: |
39 | 5 | Nikos Skalkotos | * All devices in fstab should be specified by persistent names (UUID or LABEL) |
40 | 1 | Nikos Skalkotos | * LVMs and extended partitions should be avoided. |
41 | 6 | Nikos Skalkotos | ** The support for extended partitions is partial. snf-image does not support resizing logical partitions. |
42 | 1 | Nikos Skalkotos | ** Logical volumes are not supported at all |
43 | 1 | Nikos Skalkotos | * In Linux disks only ext{2,3,4} filesystems are supported |
44 | 1 | Nikos Skalkotos | |
45 | 13 | Nikos Skalkotos | h2. Custom image Format |
46 | 6 | Nikos Skalkotos | |
47 | 14 | Nikos Skalkotos | For now, a custom image is a diskdump image whose @img_id@ OS Parameter is a URL that points to the image file. |
48 | 13 | Nikos Skalkotos | |
49 | 13 | Nikos Skalkotos | h2. Image Properties |
50 | 13 | Nikos Skalkotos | |
51 | 10 | Nikos Skalkotos | In order for snf-image to be able to properly configure an image, it may make use of a set of image properties. Those image properties are passed to snf-image by Ganeti through the @img_poroperties@ OS parameter. For the @diskdump@ format some properties are *mandatory*. For older formats ({ext,ntfs}dump) all image properties are optional. |
52 | 1 | Nikos Skalkotos | |
53 | 10 | Nikos Skalkotos | A list of mandatory and optional properties follows: |
54 | 1 | Nikos Skalkotos | * Mandatory properties (for @diskdump@ only) |
55 | 1 | Nikos Skalkotos | ** *OSFAMILY={linux,windows}* |
56 | 1 | Nikos Skalkotos | This specifies whether the image is a Linux or a Windows Image. {ext,ntfs}dump formats are self descriptive regarding this property. |
57 | 1 | Nikos Skalkotos | ** *ROOT_PARTITION={1,2,3,4}* |
58 | 13 | Nikos Skalkotos | This specifies the partition number of the root partition. As mentioned earlier, for now, only primary partitions are supported. This property is trivial for {ext,ntfs}dump formats (they only host one partition). |
59 | 10 | Nikos Skalkotos | * Optional properties |
60 | 10 | Nikos Skalkotos | ** *USERS="username1 username2...."* |
61 | 13 | Nikos Skalkotos | This is a space-seperated list of users, whose password will be reset by snf-image. If this is missing then those users are chosen according to a set of rules, but please do not depend on this. Those rules may change or even be dropped in the future. Do directly specify the @USERS@ list, just to be on the safe side. |
62 | 13 | Nikos Skalkotos | The rules we currently use are listed below: |
63 | 13 | Nikos Skalkotos | *** For Windows images, the @Administrator@'s password is reset. |
64 | 13 | Nikos Skalkotos | *** For Linux images, the root password is reset for all distribution. If @snf-image@ detects the system as a Fedora or an Ubuntu Linux, then it also resets the password of the user with username @user@. |
65 | 13 | Nikos Skalkotos | |
66 | 8 | Constantinos Venetsanopoulos | |
67 | 11 | Nikos Skalkotos | -All image properties are passed to snf-image through the @img_properties@ OS parameter. The @img_properties@ parameter is *mandatory* when trying to deploy an image of @diskdump@ format. @img_properties@ should be a json file dumped as a string. When trying to deploy an image of type @{ext,ntfs}dump@ then @img_properties@ are not necessary.- |