Editing Vzmigrate filesystem aware

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 2: Line 2:
 
Reading thoroughly quick installation documentation, it says "It is recommended to use a separate partition for container's private directories (by default /vz/private/<veid>)". As much as I searched the net, I have not found anything about it.  
 
Reading thoroughly quick installation documentation, it says "It is recommended to use a separate partition for container's private directories (by default /vz/private/<veid>)". As much as I searched the net, I have not found anything about it.  
  
This is something I thought about long ago, but I considered difficult to do in current
+
This is a subject a thought about long ago, but I considered difficult to do in my actual
implementation. Now things have changed. I have received directives in my job to have each container in separated filesystems insulated from the rest of containers.
+
implementation. Now things had changed. I have received directives in my job to have each container in separated filesystems insulated from the rest of containers.
  
Actually vzmigrate does not take into account this issue. vzmigrate assume data are available when migration occurs and it does not know about filesystems neither mounted filesystems at all.
+
Actually vzmigrate does not have into account this issue. vzmigrate assume data are available when migration occurs and it does not know about filesystems neither mounted filesystems at all.
  
Because of this matters, this issue I had put in his moment off until new order has got back to the scene.
+
Because of this matters, this issue I had put off in his moment until new order has got back to the scene.
  
Openvz has its own mechanisms to perform actions when starting a container. Migration knows about container state before migrating so after migrating data it can return the container to the previous state.
+
Openvz has its own mechanisms to perform actions when starting a container. Migration knows about container state before migrating so after migrating data it can returns the container to the the same state.
  
 
When considering migration that take into account insulated filesystems, it involve situations not considered by standard migration. By example, migrating a stopped container with its own filesystem, probably it will not have available its files because openvz supposedly will have scripts to unmount filesystem when container is stopped.
 
When considering migration that take into account insulated filesystems, it involve situations not considered by standard migration. By example, migrating a stopped container with its own filesystem, probably it will not have available its files because openvz supposedly will have scripts to unmount filesystem when container is stopped.
Line 24: Line 24:
 
To get Openvz mount the filesystem before starting the container, '''vps.premount''' can have:
 
To get Openvz mount the filesystem before starting the container, '''vps.premount''' can have:
 
<pre>
 
<pre>
#!/bin/bash
 
 
source ${VE_CONFFILE}
 
source ${VE_CONFFILE}
 
[ -d ${VE_PRIVATE} ] || mkdir ${VE_PRIVATE}
 
[ -d ${VE_PRIVATE} ] || mkdir ${VE_PRIVATE}
Line 30: Line 29:
 
</pre>
 
</pre>
  
Similarly to get the filesystem unmounted after the container is stopped, we can have in '''vps.postumount''':
+
Similarly to get the filesystem unmounted after the container is stopped, we can have in vps.postumount:
 
<pre>
 
<pre>
 
#!/bin/bash
 
#!/bin/bash
Line 44: Line 43:
 
this optional device can be set with configuration parameter '''VE_DUMP_DEVICE'''. This parameter has only meaning if we share between HN the device over which container is set up.
 
this optional device can be set with configuration parameter '''VE_DUMP_DEVICE'''. This parameter has only meaning if we share between HN the device over which container is set up.
  
== Migrations depending on context ==
+
== Migrations depending on the context ==
 
[[Image:Vzmigrate_a.jpeg|400px]]
 
[[Image:Vzmigrate_a.jpeg|400px]]
  
Migration in this case, as you would expect, is the same as always.
+
Migration in this case, as you would expect, es the same as always.
  
  
Line 54: Line 53:
 
[[Image:Vzmigrate_b.jpeg|400px]]
 
[[Image:Vzmigrate_b.jpeg|400px]]
 
<pre>
 
<pre>
vzmigrate --dst-device /dev/sdg1 HN_target 123
+
vzmigrate --dst-device /derv/sdg1 HN_target 123
 
</pre>
 
</pre>
  
Line 62: Line 61:
  
 
Remove VE_DEVICE parameter from 123.conf and operate the same as shared-shared
 
Remove VE_DEVICE parameter from 123.conf and operate the same as shared-shared
 +
 +
Mount/unmount container's filesystem if appropriated.
  
  
Line 83: Line 84:
  
 
== Undo actions ==
 
== Undo actions ==
The issue has required a lot hard work for modifying vzmigrate to track undo actions when a error arises in the code. I felt free to reorganise undo actions in the function described on the following diagram.
+
The issue has got me a lot hard work when modifying vzmigrate is to track undo actions when a error arised in the code. May I permit to restructure undo actions in a function that follows the next diagram.
  
  
Line 95: Line 96:
 
mount /dev/sda1 /vz/private/123
 
mount /dev/sda1 /vz/private/123
 
mv /var/tmp/123/* /vz/private/123
 
mv /var/tmp/123/* /vz/private/123
# reflect these changes in /etc/vz/conf/123.conf
+
# reflect this change in VE_PRIVATE parameter in /etc/vz/conf/123.conf
...
 
VE_PRIVATE="/vz/private/$VEID"
 
VE_DEVICE="/dev/sda1"
 
...
 
 
</pre>
 
</pre>
  
== Links to modified vzmigrate ==
+
== Links to vzmigrate modified ==
 
ftp://ftp.uma.es/pub/Linux/openvz/
 
ftp://ftp.uma.es/pub/Linux/openvz/
  
 
[[Category:HOWTO]]
 
[[Category:HOWTO]]

Please note that all contributions to OpenVZ Virtuozzo Containers Wiki may be edited, altered, or removed by other contributors. If you don't want your writing to be edited mercilessly, then don't submit it here.
If you are going to add external links to an article, read the External links policy first!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)