Changes

Jump to navigation Jump to search
244 bytes removed ,  09:21, 25 March 2015
Line 165: Line 165:  
Linux kernel v3.11 or newer is required, with some specific options set. If your distribution does not provide needed kernel, you might want to compile one yourself. Note we also have our [[custom kernel]], which might contain some experimental CRIU related patches.
 
Linux kernel v3.11 or newer is required, with some specific options set. If your distribution does not provide needed kernel, you might want to compile one yourself. Note we also have our [[custom kernel]], which might contain some experimental CRIU related patches.
   −
Note you might have to enable
+
==== Compiling the kernel ====
; <code>CONFIG_EXPERT=y</code>
+
 
: General setup -> Configure standard kernel features (expert users)
+
Most likely the first thing to enable is the <code>CONFIG_EXPERT=y</code> (General setup -> Configure standard kernel features (expert users)) option, which on x86_64 depends on the <code>CONFIG_EMBEDDED=y</code> (General setup -> Embedded system) one (welcome to Kconfig reverse chains hell).
option, which depends on
  −
; <code>CONFIG_EMBEDDED=y</code>
  −
: General setup -> Embedded system
  −
(welcome to Kconfig reverse chains hell).
      
The following options must be enabled for CRIU to work:
 
The following options must be enabled for CRIU to work:
   −
; <code>CONFIG_CHECKPOINT_RESTORE=y</code>
+
* <code>CONFIG_CHECKPOINT_RESTORE=y</code> (General setup -> Checkpoint/restore support)
: General setup -> Checkpoint/restore support
+
* <code>CONFIG_NAMESPACES=y</code> (General setup -> Namespaces support)
 
+
* <code>CONFIG_UTS_NS=y</code> (General setup -> Namespaces support -> UTS namespace)
; <code>CONFIG_NAMESPACES=y</code>
+
* <code>CONFIG_IPC_NS=y</code> (General setup -> Namespaces support -> IPC namespace)
: General setup -> Namespaces support  
+
* <code>CONFIG_PID_NS=y</code> (General setup -> Namespaces support -> PID namespaces)
 
+
* <code>CONFIG_NET_NS=y</code> (General setup -> Namespaces support -> Network namespace)
; <code>CONFIG_UTS_NS=y</code>
+
* <code>CONFIG_FHANDLE=y</code> (General setup -> open by fhandle syscalls)
: General setup -> Namespaces support -> UTS namespace
+
* <code>CONFIG_EVENTFD=y</code> (General setup -> Enable eventfd() system call)
 
+
* <code>CONFIG_EPOLL=y</code> (General setup -> Enable eventpoll support)
; <code>CONFIG_IPC_NS=y</code>
+
* <code>CONFIG_INOTIFY_USER=y</code> (File systems -> Inotify support for userspace)
: General setup -> Namespaces support -> IPC namespace
+
* <code>CONFIG_IA32_EMULATION=y</code> (x86 only) (Executable file formats -> Emulations -> IA32 Emulation)
 
+
* <code>CONFIG_UNIX_DIAG=y</code> (Networking support -> Networking options -> Unix domain sockets -> UNIX: socket monitoring interface)
; <code>CONFIG_PID_NS=y</code>
+
* <code>CONFIG_INET_DIAG=y</code> (Networking support -> Networking options -> TCP/IP networking -> INET: socket monitoring interface)
: General setup -> Namespaces support -> PID namespaces
+
* <code>CONFIG_INET_UDP_DIAG=y</code> (Networking support -> Networking options -> TCP/IP networking -> INET: socket monitoring interface -> UDP: socket monitoring interface)
 
+
* <code>CONFIG_PACKET_DIAG=y</code> (Networking support -> Networking options -> Packet socket -> Packet: sockets monitoring interface)
; <code>CONFIG_NET_NS=y</code>
+
* <code>CONFIG_NETLINK_DIAG=y</code> (Networking support -> Networking options -> Netlink socket -> Netlink: sockets monitoring interface)
: General setup -> Namespaces support -> Network namespace
  −
 
  −
; <code>CONFIG_FHANDLE=y</code>
  −
: General setup -> open by fhandle syscalls
  −
 
  −
; <code>CONFIG_EVENTFD=y</code>
  −
: General setup -> Enable eventfd() system call
  −
 
  −
; <code>CONFIG_EPOLL=y</code>
  −
: General setup -> Enable eventpoll support
  −
 
  −
; <code>CONFIG_INOTIFY_USER=y</code>
  −
: File systems -> Inotify support for userspace
  −
 
  −
; <code>CONFIG_IA32_EMULATION=y</code> (x86 only)
  −
: Executable file formats -> Emulations -> IA32 Emulation
  −
 
  −
; <code>CONFIG_UNIX_DIAG=y</code>
  −
: Networking support -> Networking options -> Unix domain sockets -> UNIX: socket monitoring interface
  −
 
  −
; <code>CONFIG_INET_DIAG=y</code>
  −
: Networking support -> Networking options -> TCP/IP networking -> INET: socket monitoring interface
  −
 
  −
; <code>CONFIG_INET_UDP_DIAG=y</code>
  −
: Networking support -> Networking options -> TCP/IP networking -> INET: socket monitoring interface -> UDP: socket monitoring interface
  −
 
  −
; <code>CONFIG_PACKET_DIAG=y</code>
  −
: Networking support -> Networking options -> Packet socket -> Packet: sockets monitoring interface
  −
 
  −
; <code>CONFIG_NETLINK_DIAG=y</code>
  −
: Networking support -> Networking options -> Netlink socket -> Netlink: sockets monitoring interface
  −
 
  −
For some [[usage scenarios]] there is an ability to track memory changes and produce [[incremental dumps]]. Need to enable
  −
; <code>CONFIG_MEM_SOFT_DIRTY=y</code> (optional)
  −
: Processor type and features -> Track memory changes
     −
At the moment it's known that CRIU will '''NOT''' work if packet generator module is loaded. Thus make sure
+
For some [[usage scenarios]] there is an ability to track memory changes and produce [[incremental dumps]]. Need to enable the <code>CONFIG_MEM_SOFT_DIRTY=y</code> (optional) (Processor type and features -> Track memory changes).
that either module is unloaded or not compiled at all.
  −
; <code># CONFIG_NET_PKTGEN is not set</code>
  −
: Networking support -> Networking options -> Network testing -> Packet generator
      
=== iproute2 ===
 
=== iproute2 ===

Navigation menu