Linux

OpenVZ 容器在重啟後不會啟動

  • February 26, 2016
vzctl start 192
Dump file /vz/dump/Dump.192 exists, trying to restore from it
Restoring container ...
Opening delta /vz/private/192/root.hdd/root.hdd
Data cluster 1112 beyond EOF, vsec=47137...
FATAL
Error in ploop_check (check.c:547): Fatal errors were found, image /vz/private/192/root.hdd/root.hdd is not repaired
Error in check_deltas (check.c:631): /vz/private/192/root.hdd/root.hdd : irrecoverable errors
Failed to mount image: Error in check_deltas (check.c:631): /vz/private/192/root.hdd/root.hdd : irrecoverable errors [11]
Starting container...
Opening delta /vz/private/192/root.hdd/root.hdd
Data cluster 1112 beyond EOF, vsec=47137...
FATAL
Error in ploop_check (check.c:547): Fatal errors were found, image /vz/private/192/root.hdd/root.hdd is not repaired
Error in check_deltas (check.c:631): /vz/private/192/root.hdd/root.hdd : irrecoverable errors
Failed to mount image: Error in check_deltas (check.c:631): /vz/private/192/root.hdd/root.hdd : irrecoverable errors [11]

我進行了 ploop 檢查:

# ploop check -f /vz/private/192/root.hdd/root.hdd
Reopen rw /vz/private/192/root.hdd/root.hdd
Data cluster 4704 beyond EOF, vsec=6177...
FATAL
Error in ploop_check (check.c:547): Fatal errors were found, image /vz/private/192/root.hdd/root.hdd is not repaired


# ploop check -F /vz/private/192/root.hdd/root.hdd
Reopen rw /vz/private/192/root.hdd/root.hdd
Data cluster 4704 beyond EOF, vsec=6177...
Fixed
Error in ploop_check (check.c:572): Dirty flag is set


# vzctl start 192
Dump file /vz/dump/Dump.192 exists, trying to restore from it
Restoring container ...
Opening delta /vz/private/192/root.hdd/root.hdd
Error in ploop_check (check.c:572): Dirty flag is set
Adding delta dev=/dev/ploop46026 img=/vz/private/192/root.hdd/root.hdd (rw)


/dev/ploop46026p1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
       (i.e., without -a or -p options)
Error in e2fsck (fsutils.c:288): e2fsck failed (exit code 4)

Failed to mount image: Error in e2fsck (fsutils.c:288): e2fsck failed (exit code 4)
[41]
Starting container...
Opening delta /vz/private/192/root.hdd/root.192
Adding delta dev=/dev/ploop46026 img=/vz/private/200/root.hdd/root.hdd (rw)


/dev/ploop46026p1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
       (i.e., without -a or -p options)
Error in e2fsck (fsutils.c:288): e2fsck failed (exit code 4)

Failed to mount image: Error in e2fsck (fsutils.c:288): e2fsck failed (exit code 4)
[41]

編輯2:

這修復了其中一個:

ploop check -F /vz/private/183/root.hdd/root.hdd
ploop mount /vz/private/183/root.hdd/DiskDescriptor.xml
fdisk -l /dev/ploop32942
e2fsck /dev/ploop32942p1

但是,其中一個之後我在啟動時得到了這個:

# vzctl start 183
Dump file /vz/dump/Dump.183 exists, trying to restore from it
Restoring container ...
Opening delta /vz/private/183/root.hdd/root.hdd
Adding delta dev=/dev/ploop32942 img=/vz/private/183/root.hdd/root.hdd (rw)
Mounting /dev/ploop32942p1 at /vz/root/183 fstype=ext4 data='balloon_ino=12,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,'
Container is mounted
       undump...
Restore error, undump failedContainer restore failed (try to check kernel messages, e.g. "dmesg | tail")
: Invalid argument
Starting container...
Warning: rmdir //.cpt_hardlink_dir_a920e4ddc233afddc9fb53d26c392319 failed: Read-only file system
Adding IP address(es): 
mkdir: cannot create directory `/etc/sysconfig/network-scripts/bak': Read-only file system
/bin/cp: cannot create regular file `/etc/sysconfig/network-scripts/bak/': Is a directory
ERROR: Unable to backup interface config files
Setting CPU limit: 400
Setting CPU units: 1000
Setting CPUs: 16
Container start failed (try to check kernel messages, e.g. "dmesg | tail")
Killing container ...
Container was stopped
Unmounting file system at /vz/root/183
Unmounting device /dev/ploop32942
Container is unmounted

之後,當我嘗試再次啟動容器時失敗,我必須再次 e2fsck 它但嘗試再次啟動它我遇到了同樣的問題。

編輯 3:

事實可能是因為磁碟是 GPT 導致 fsck 無法正常工作嗎?

硬體重啟後,以下建議的解決方案有助於一一啟動失敗的容器:

# ploop check -F /vz/private/139/root.hdd/root.hdd
# ploop mount /vz/private/139/root.hdd/DiskDescriptor.xml
# fdisk -l /dev/ploop56824
# e2fsck /dev/ploop56824p1
# vzctl start 139

Dump file /vz/dump/Dump.131 exists, trying to restore from it
Restoring container ...
Unmounting device /dev/ploop56824
Opening delta /vz/private/131/root.hdd/root.hdd
Adding delta dev=/dev/ploop56824 img=/vz/private/131/root.hdd/root.hdd (rw)
Mounting /dev/ploop56824p1 at /vz/root/131 fstype=ext4 data='balloon_ino=12,'
Container is mounted
       undump...
Adding IP address(es): 78.129.146.84
Setting CPU limit: 100
Setting CPU units: 1000
Setting CPUs: 1
Setting iolimit: 67108864 bytes/sec
       resume...
Container start in progress...
Restoring completed successfully

謝謝,幫了大忙!

引用自:https://serverfault.com/questions/666443