From Fedora Project Wiki

No edit summary
(add network testcase)
Line 4: Line 4:
==Known issues==
==Known issues==
* Problems with SELinux
* Problems with SELinux
** In version 4.4 we introduced new script for disable SELinux {{command | /usr/libexec/vzctl/scripts/vz-postinstall}}
** In version 4.4 we introduced new script for disable SELinux <code>/usr/libexec/vzctl/scripts/vz-postinstall</code>
* Random system freezes
* Random system freezes
** {{bz | 982489}}
** {{bz | 982489}}
* Kernel older or equal 3.10
* Kernel older or equal 3.10
** You shall execute {{command | vzctl exec 101  killall udevd}}
** You shall execute <code>vzctl exec 101  killall udevd</code>
===4.3.1 specific===
===4.3.1 specific===
* Doesn't work {{command | vzctl exec 101 ps axf}} (proc is not mounted)
* Doesn't work <code>vzctl exec 101 ps axf</code> (proc is not mounted)
** OpenVZ # [https://bugzilla.openvz.org/show_bug.cgi?id=2658 2658]
** OpenVZ # [https://bugzilla.openvz.org/show_bug.cgi?id=2658 2658]
* criu: command not found
* criu: command not found
** {{command | yum install crtools}} (Patch sent to maintainers)
** <code>yum install crtools</code> (Patch sent to maintainers)
* Doesn't work {{command | vzctl restore 101}} (VE_VETH_DEVS failure)
* Doesn't work <code>vzctl restore 101</code> (VE_VETH_DEVS failure)
** OpenVZ # [https://bugzilla.openvz.org/show_bug.cgi?id=2659 2659]
** OpenVZ # [https://bugzilla.openvz.org/show_bug.cgi?id=2659 2659]
==Bug Reports==
==Bug Reports==
* If something went wrong you can see dump.log in <code>/var/lib/vz/dump/Dump.101.fail/</code> and send bugreport.
* If something went wrong you can see dump.log in <code>/var/lib/vz/dump/Dump.101.fail/</code> and send bugreport.
* For bugreport you shall create archive dump and attach to BZ. Create archive (as root):
* For bugreport you shall create archive dump and attach to BZ. Create archive (as root):
{{command | cd /var/lib/vz/dump/Dump.101.fail/ && tar -cJf /Dump.101.fail.tar.xz *}}
<code>cd /var/lib/vz/dump/Dump.101.fail/ && tar -cJf /Dump.101.fail.tar.xz *</code>
* [https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=vzctl New bug]
* [https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=vzctl New bug]
|setup=
|setup=
# Open terminal
# Open terminal
# Switch to root user: {{command | su -}}
# Switch to root user: <code>su -</code>
# Install: {{command | yum install vzctl}}
# Install: <code>yum install vzctl</code>
# Prepare sysctl settings for network:
## <code>sysctl net.ipv4.ip_forward=1</code>
## <code>sysctl net.ipv4.ip_forward=1</code>
## <code>sysctl net.ipv4.conf.default.proxy_arp=0</code>
## <code>sysctl net.ipv4.conf.all.rp_filter=1</code>
## <code>sysctl net.ipv4.conf.default.send_redirects=1</code>
## <code>sysctl net.ipv4.conf.all.send_redirects=0</code>
|actions=
|actions=
# Create new container: {{command | vzctl create 101 --ostemplate centos-6-x86_64}}
# Create new container: <code>vzctl create 101 --ostemplate centos-6-x86_64</code>
# Start container: {{command | vzctl start 101}}
# Start container: <code>vzctl start 101</code>
# Exec ps in container: {{command | vzctl exec 101 ps axf}}
# Add network interface in container: <code>vzctl set 101 --netif_add em1</code>
# Enter to container: {{command | vzctl enter 101}}
# Exec ps in container: <code>vzctl exec 101 ps axf</code>
# Exec ps in container directly: {{command | ps axf}}
# Enter to container: <code>vzctl enter 101</code>
# Exit from container: {{command | logout}}
# Enable network intarface: <code>ip link set em1 up</code>
# Suspend container: {{command | vzctl suspend 101}}
# Assign ip address to interface: <code>ip addr add 192.168.50.240/24 dev em1</code>
# Restore container: {{command | vzctl restore 101}} or {{command | vzctl resume 101}}
# Add route for interface: <code>ip route add default via 192.168.50.254 dev em1</code>
# Stop container: {{command | vzctl stop 101}}
# Exec ps in container directly: <code>ps axf</code>
# Exit from container: <code>logout</code>
# Enable virtual net interface: <code>ip link set veth101.1 up</code>
# Add route for virtual net interface: <code>ip route add 192.168.50.240/32 dev veth101.1</code>
# Suspend container: <code>vzctl suspend 101</code>
# Restore container: <code>vzctl restore 101</code> or <code>vzctl resume 101</code>
# Enter to container: <code>vzctl enter 101</code>
# Test network: <code>ping -c 3 8.8.8.8</code>
# Exit from container: <code>logout</code>
# Stop container: <code>vzctl stop 101</code>
|results=
|results=
The following must be true to consider this a successful test run. Be brief ... but explicit.  
The following must be true to consider this a successful test run. Be brief ... but explicit.  

Revision as of 10:25, 22 July 2013


Description

Basic tests for OpenVZ Linux Containers and Checkpoint/Restore In Userspace (CRIU)

Known issues

  • Problems with SELinux
    • In version 4.4 we introduced new script for disable SELinux /usr/libexec/vzctl/scripts/vz-postinstall
  • Random system freezes
  • Kernel older or equal 3.10
    • You shall execute vzctl exec 101 killall udevd

4.3.1 specific

  • Doesn't work vzctl exec 101 ps axf (proc is not mounted)
  • criu: command not found
    • yum install crtools (Patch sent to maintainers)
  • Doesn't work vzctl restore 101 (VE_VETH_DEVS failure)

Bug Reports

  • If something went wrong you can see dump.log in /var/lib/vz/dump/Dump.101.fail/ and send bugreport.
  • For bugreport you shall create archive dump and attach to BZ. Create archive (as root):

cd /var/lib/vz/dump/Dump.101.fail/ && tar -cJf /Dump.101.fail.tar.xz *

Setup

  1. Open terminal
  2. Switch to root user: su -
  3. Install: yum install vzctl
  4. Prepare sysctl settings for network:
    1. sysctl net.ipv4.ip_forward=1
    2. sysctl net.ipv4.ip_forward=1
    3. sysctl net.ipv4.conf.default.proxy_arp=0
    4. sysctl net.ipv4.conf.all.rp_filter=1
    5. sysctl net.ipv4.conf.default.send_redirects=1
    6. sysctl net.ipv4.conf.all.send_redirects=0

How to test

  1. Create new container: vzctl create 101 --ostemplate centos-6-x86_64
  2. Start container: vzctl start 101
  3. Add network interface in container: vzctl set 101 --netif_add em1
  4. Exec ps in container: vzctl exec 101 ps axf
  5. Enter to container: vzctl enter 101
  6. Enable network intarface: ip link set em1 up
  7. Assign ip address to interface: ip addr add 192.168.50.240/24 dev em1
  8. Add route for interface: ip route add default via 192.168.50.254 dev em1
  9. Exec ps in container directly: ps axf
  10. Exit from container: logout
  11. Enable virtual net interface: ip link set veth101.1 up
  12. Add route for virtual net interface: ip route add 192.168.50.240/32 dev veth101.1
  13. Suspend container: vzctl suspend 101
  14. Restore container: vzctl restore 101 or vzctl resume 101
  15. Enter to container: vzctl enter 101
  16. Test network: ping -c 3 8.8.8.8
  17. Exit from container: logout
  18. Stop container: vzctl stop 101

Expected Results

The following must be true to consider this a successful test run. Be brief ... but explicit.

  1. All steps completes without error
  2. Steps #3, #5 shows the same. Like this:
Directory /proc/vz not found, assuming non-OpenVZ kernel
  PID TTY      STAT   TIME COMMAND
  551 pts/0    R+     0:00 ps axf
    1 ?        Ss     0:00 init
   59 ?        S<s    0:00 /sbin/udevd -d
  299 ?        S<     0:00  \_ /sbin/udevd -d
  459 ?        Sl     0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
  488 ?        Ss     0:00 /usr/sbin/sshd
  495 ?        Ss     0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
  502 ?        Ss     0:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam -n 2
  503 ?        S      0:00  \_ /usr/sbin/saslauthd -m /var/run/saslauthd -a pam -n 2
  518 ?        Ss     0:00 sendmail: accepting connections
  526 ?        Ss     0:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
  534 ?        Ss     0:00 /usr/sbin/httpd
  537 ?        S      0:00  \_ /usr/sbin/httpd
  542 ?        Ss     0:00 crond

Optional

Optionally provide hints for exploratory testing.