Migration from Virtuozzo containers 4.0 fails with the following error:
1433385613: begin stage : startTrack 1433385613: Tracker started 1433385613: tracker pid 244382 1433389709: end stage : startTrack 1433389709: Syncing private area '/vz/private/101' 1433389709: Send command: first 1433389709: can't send command to destination side : Broken pipe 1433389709: Can't move/copy CT#101 -> CT#101, ,  : can't send command to destination side : Broken pipe
The following errors appear in
/var/log/messages log on the destination server:
Jun 22 15:58:57 testsb02 vzmdest: recv_str : timeout (3600 sec) Jun 22 15:58:57 testsb02 vzmdest: vzsock_recv() return 4
The container has a large amount of inodes inside:
[root@vz ~]# vzquota stat 101 resource usage softlimit hardlimit 1k-blocks 14562240 20509308 20509308 inodes 784834 1310720 1310720
The issue is recognized as a product bug with internal ID PCLIN-29323: the timeout value is not passed to
vzmdest on the destination node.
The most preferable solution is to install migration binaries from Virtuozzo containers 4.6. In order to do that, use the resolution steps from the following article:
125694 How to migrate VZFS containers directly to ploop from Virtuozzo containers 4.0?
If installing Virtuozzo containers 4.6 binaries is not an option for some reason, it is possible to change the timeout for
vzmdestmanually with a wrapper file. Perform the following steps on the destination node:
# mv /usr/sbin/vzmdest /usr/sbin/vzmdest.orig # cat > /usr/sbin/vzmdest << 'EOF' #!/bin/bash /usr/sbin/vzmdest.orig --timeout 36000 $@ EOF # chmod +x /usr/sbin/vzmdest
There are also additional actions that will help to decrease the amount of time, required for the migration.
- Remove all unnecessary files from the CT.
Run the following command before the migration:
# find /vz/private/CT_ID/ -ls > /dev/null
This command can be used to pre-cache file attributes, so the kernel will keep them in caches, reducing the time of 'startTrack' stage.