How to unlock a container in OpenVZ

Posted on December 13th, 2016

In this tutorial we can check how to unlock a container in OpenVZ

OpenVZ

OpenVZ is an operating system-level virtualization technology for Linux. It allows Multiple isolated operating system instances, called containers/Virtual Private Servers(VPS)/Virtual Environments(VE) to run on a single physical server.

 

Action Scripts

There might be some situations when you need to perform additional actions when a container is started/stopped. You need OpenVZ action scripts to perform these additional operations to manage particular container. Action scripts are located in the /vz/private/CTID/scripts/ and /etc/vz/conf directories. There are both global and user defined scripts for containers. The global action scripts can be executed for all containers and user defined action scripts can be only run for a specific container identified by the container id(CTID). The vzctl has an ability to execute user-defined scripts when a specific vzctl command is run for a container. The vzctl command can execute action scripts like start, stop, restart, mount, and unmount.

 

syntax

—vzctl   [flags]   CTID  –parameter value[…]

 

Example

1) To start a container

—vzctl   start      CTID  [–wait] [–force]

2) To stop a container

—vzctl   stop      CTID  [–FAST]

3) To restart a container

—vzctl   restart   CTID [–fast] [–skip-unmount]

4) To know the current status of a container

—vzctl   status    CTID

where, start, stop, restart, status are the action scripts and the CTID is the Container ID.

 

Locked Container

The OpenVZ container fails to start and becomes unresponsive sometimes, if the action scripts does not work properly. Sometimes the container will get stuck or unresponsive when running time consuming processes like automated or manual virtuozo backups. At this stage the container will be unresponsive and is referred to be in a locked stage. While starting the OpenVZ container you will get an error like this

—[root@server ~]# vzctl stop CTID

—Container already locked

You won’t be able to start, stop, restart or run any action scripts on the container at the this stage.

 

Solution

Kill the process

If multiple failed attempts are made to start or restart the container, then every such event will have a separate process id(PID). You must remove all those pid and also the lock file. The pid can be found out by running the below command.

—ps aux | grep /usr/sbin/vzctl start CTID

—ps aux | grep /usr/sbin/vzctl restart CTID

You can kill the process by killing all those pid found from the above command. Run this command to kill the every founded pid.

—kill -9 pid

 

Delete the lock file

The lock file contains no data and exists as an empty marker file. It contains properties and settings for the lock. The lock file signals the applications that a resource should not be used until the lock is released. The default location of the lock file is

—/vz/lock/CTID.lck

To release the resources and free the container from lock, this file must be deleted. Each container has its own specific lock file. To delete the lock file use the command given below.

—[root@server ~]# rm /vz/lock/CTID.lck

—rm :  remove regular file ‘/vz/lock/CTID.lck’? y

 

Kill the checkpoint

Finally kill the checkpoint of the container to unlock and free the resources. The parameter –kill is used to kill the container checkpoint.

—[root@server ~]# vzctl chkpnt CTID –kill

—Killing…

Container is not running

 

Start the container

Once you have run all of them, you can re-run your container using vzctl start/restart/stop command.

 

If you need any further assistance please contact our support department.

 

 

Leave a Reply