# sysfs Problem

## Raze

Hallo zusammen,

folgendes Problem bei OpenVZ-Container nach einem Kernel-Update (*) stellt sich mir gerade:

```
/etc/init.d/net.eth0 start

mkdir: das Verzeichnis „/sys/fs/cgroup/openrc“ kann nicht angelegt werden: Die Datei existiert bereits

mount: permission denied

mkdir: das Verzeichnis „/sys/fs/cgroup/cpuset“ kann nicht angelegt werden: Die Datei existiert bereits

mount: special device cpuset does not exist

mkdir: das Verzeichnis „/sys/fs/cgroup/cpu“ kann nicht angelegt werden: Die Datei existiert bereits

mount: special device cpu does not exist

mkdir: das Verzeichnis „/sys/fs/cgroup/cpuacct“ kann nicht angelegt werden: Die Datei existiert bereits

mount: special device cpuacct does not exist

mkdir: das Verzeichnis „/sys/fs/cgroup/devices“ kann nicht angelegt werden: Die Datei existiert bereits

mount: special device devices does not exist

mkdir: das Verzeichnis „/sys/fs/cgroup/freezer“ kann nicht angelegt werden: Die Datei existiert bereits

mount: special device freezer does not exist

mkdir: das Verzeichnis „/sys/fs/cgroup/net_cls“ kann nicht angelegt werden: Die Datei existiert bereits

mount: special device net_cls does not exist

mkdir: das Verzeichnis „/sys/fs/cgroup/blkio“ kann nicht angelegt werden: Die Datei existiert bereits

mount: special device blkio does not exist

mkdir: das Verzeichnis „/sys/fs/cgroup/perf_event“ kann nicht angelegt werden: Die Datei existiert bereits

mount: special device perf_event does not exist

mkdir: das Verzeichnis „/sys/fs/cgroup/net_prio“ kann nicht angelegt werden: Die Datei existiert bereits

mount: special device net_prio does not exist

 * ERROR: sysfs failed to start

 * ERROR: cannot start net.eth0 as sysfs would not start
```

(*) = aktuell 2.6.32-openvz-042stab102.9-amd64, vormals 2.6.32-openvz-042stab094.8-amd64

Das Problem existiert erst seit der neusten Kernel-Version. Ich kann mir darauf nicht wirklich einen Reim machen, das diff zwischen den .configs halte ich für unbedenklich:

```
diff -w config-2.6.32-openvz-042stab094.8-amd64 config-2.6.32-openvz-042stab102.9-amd64

3,4c3,4

< # Linux kernel version: 2.6.32-openvz-042stab094.8-amd64

< # Tue Dec 16 20:35:46 2014

---

> # Linux kernel version: 2.6.32-openvz-042stab102.9-amd64

> # Fri Dec 19 20:33:32 2014

195a196,197

> CONFIG_HAVE_PERF_REGS=y

> CONFIG_HAVE_PERF_USER_STACK_DUMP=y

459c461

< CONFIG_ACPI_IPMI=y

---

> CONFIG_ACPI_IPMI=m

479a482

> CONFIG_ACPI_EXTLOG=m

548a552

> # CONFIG_PCI_REALLOC_ENABLE_AUTO is not set

1052a1057

> CONFIG_NET_RX_BUSY_POLL=y

1451a1457

> # CONFIG_SCSI_MVSAS_TASKLET is not set

1595a1602

> CONFIG_BLK_DEV_DM_BUILTIN=y

1604a1612,1615

> CONFIG_DM_CACHE=m

> CONFIG_DM_CACHE_MQ=m

> CONFIG_DM_CACHE_CLEANER=m

> CONFIG_DM_ERA=m

1796a1808,1811

> CONFIG_I40E=m

> # CONFIG_I40E_VXLAN is not set

> # CONFIG_I40E_DCB is not set

> CONFIG_I40EVF=m

1807a1823,1824

> CONFIG_MLX5_CORE=m

> CONFIG_MLX5_DEBUG=y

1812a1830,1831

> CONFIG_QLCNIC_DCB=y

> CONFIG_QLCNIC_HWMON=y

2343a2363

> CONFIG_HYPERV_KEYBOARD=m

2409c2429

< CONFIG_IPMI_HANDLER=y

---

> CONFIG_IPMI_HANDLER=m

2412c2432

< CONFIG_IPMI_SI=y

---

> CONFIG_IPMI_SI=m

2571a2592,2593

> CONFIG_POWERCAP=y

> CONFIG_INTEL_RAPL=m

2663a2686

> CONFIG_INTEL_POWERCLAMP=m

2753a2777

> CONFIG_MFD_RTSX_PCI=m

3168a3193

> CONFIG_DRM_KMS_FB_HELPER=y

3176a3202

> # CONFIG_DRM_I2C_NXP_TDA998X is not set

3187a3214,3216

> CONFIG_DRM_I915_FBDEV=y

> # CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set

> CONFIG_DRM_I915_UMS=y

3500a3530

> CONFIG_HID_MULTITOUCH=m

3547d3576

< # CONFIG_USB_XHCI_HCD_DEBUGGING is not set

3726a3756

> CONFIG_MMC_REALTEK_PCI=m

3741a3772

> CONFIG_MEMSTICK_REALTEK_PCI=m

3780a3812

> CONFIG_INFINIBAND_QIB_DCA=y

3785a3818

> CONFIG_MLX5_INFINIBAND=m

3788c3821,3822

< # CONFIG_INFINIBAND_OCRDMA is not set

---

> CONFIG_INFINIBAND_OCRDMA=m

> # CONFIG_INFINIBAND_USNIC is not set

4015a4050

> CONFIG_UEFI_CPER=y

4327a4363

> # CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set

4418a4455

> CONFIG_EARLY_PRINTK_EFI=y

4518a4556,4557

> CONFIG_CRYPTO_CRCT10DIF=y

> CONFIG_CRYPTO_CRCT10DIF_PCLMUL=y

4529c4568

< CONFIG_CRYPTO_SHA256=m

---

> CONFIG_CRYPTO_SHA256=y

4569a4609,4613

> CONFIG_CRYPTO_DRBG_MENU=m

> CONFIG_CRYPTO_DRBG_HMAC=y

> CONFIG_CRYPTO_DRBG_HASH=y

> CONFIG_CRYPTO_DRBG_CTR=y

> CONFIG_CRYPTO_DRBG=m

4624d4667

< CONFIG_LIST_SORT=y
```

Patchnote: http://openvz.org/Download/kernel/rhel6/042stab102.9

```
Since 042stab094.8:

    Rebase to new RHEL6 kernel 2.6.32-504.1.3.el6 (security and bug fixes, see links below)

    netfilter: xt_connlimit: netns support (#3061)

    proc: reject ve context change of perms of node's proc files (PSBM-27933)

    cpt: typo fix in restore_posix_lock() (PSBM-30178)

    cpt/ipc: unbalanced preempt count in sysvipc_walk_sem (#3125, PSBM-30252)

    cpt: ipc sem fixup changes (#3125)

    ve/net: add a separate field for NETIF_F_VIRTUAL and NETIF_F_VENET (PSBM-29226)

    cpt: get rid of explicit i_size manipulation (PSBM-28962)

    ms/ext4: lock i_mutex when truncating orphan inodes

    ms/net: tcp: use correct net ns in cookie_v4_check() (PSBM-29553)

    rst: verbose debug for rst_restore_process() (#3085, PSBM-25446)

    cpt: put ct after nf_conntrack_hash_check_insert (PSBM-29589)

    cpt: Restore file locks owners (PSBM-29240)

    cpt: Dump whole siginfo_t::_sifields (PSBM-29266)

    cpt: Allow to receive pending data from unix socketpair with closed second end (PSBM-29264)

    ve/sysfs: create /sys/block/devName & /sys/dev/block/MAJ:MIN for CT ploops (PSBM-29112)

    ve/net: venet_set_op() cleanup

    cpt: Correct dump tmpfs having child mounts (PSBM-29265)

    fuse: introduce fuse_release_ff()

    fuse: fix deadlock in fuse_flush() (PSBM-29381)

    fuse: fix erroneous unlock_page() in fuse_send_writepages()

    ext4: update defragmentation codebase

    ext4: cleanup GFP flags inside resize path

    ve/net/ppp: fixed oops in oops in ppp_register_net_channel() (#3114, PSBM-29975)

    nfs: fixed nfs_fattr/nfs_fh leak in nfs_lookup_revalidate() (PSBM-29924)

    cpt: remove unused CPT_TEST_CAPS ioctl code

    cpt: fix TEST_VECAPS ioctl wrt xsave (#3012)

    cpt: Restore deleted delayed files in /tmp directory (PSBM-29582)

    rst: Zeroify ITIMER_PROF and ITIMER_VIRTUAL counting errors (PSBM-29857)

    ext4: fsync/mfsync cleanup

    mm: debug memory allocation causing fs re-entrance

    mm: compaction: restore irq only if lruvec lock is released (PSBM-29961)

    arch: x86: assure cpuinfo inside ct is subset of host's one (PSBM-30688)

    cpt: Fix wrong restore of conntrack

    cpt: unbalanced cpt_get/release_buf (#3139, PSBM-30546)

    x86/xsaves: Detect xsaves/xrstors feature

    x86, cpufeature: Rename X86_FEATURE_DTS to X86_FEATURE_DTHERM (PSBM-30577)

    arch: x86: check if cpuid level exists while reporting cpuinfo

    arch: x86: report cpuid:0000000d_1 in cpuinfo (PSBM-30577)

    arch: x86: only enable cpuid faulting for containers (PSBM-30516)

    arch: x86: disable cpuid faulting on reboot and cpu offline (PSBM-30548)

    cpt: missing i_mutex in find_linked_dentry() (#3145)

    typo in restore_one_vfsmount (#3041)

    cpt: Delete debug print in fixup_lock_pid()

    cpt: Check for retval of nf_conntrack_hash_check_insert() in undump_one_ct() (PSBM-30598)

    cgroup: do not inherit CGRP_SELF_DESTRUCTION flag

    netfilter: af_info: add network namespace parameter to route hook

    netfilter: nf_conntrack_h323: lookup route from proper net namespace

    xt_TCPMSS: lookup route from proper net namespace

    ub: account Shmem to meminfo:Cached (PSBM-28682)

    cgroup: Show /proc/cgroups inside container (PSBM-29815)

    xt_connbytes: enable CT accounting in proper net namespace

    cpt: dump packet socket mclist (PSBM-27254)

    cpt: fix ns pid in dump_one_flock (PSBM-30473)

    cpt: Fix restore of deleted hardlinks (PSBM-30318)

    cgroup: cpt -- Dont BUG_ON if something failed (PSBM-29815)

    cpt: dump_content_fifo fixup lockdep complain (PSBM-30266)

    cpt: cpt/restore continued/stopped flags of struct signal_struct (PSBM-29351)

    mm: add sysctl vm.force_scan_thresh (PSBM-29968)

    "cpu faulting" support for "cpu pools" feature

    VDSO/UTS virtualization for openSUSE 13.2 support

    fs/mnt: don't release unhold namespace_sem

    net/rtnetlink: rtnl_getlink() - allow query info by ifname (PSBM-30315)

    vedev: allow different symlinks source names for ve_device symlink (PSBM-30024)

    vedev: use correct ve context kobj when create symlinks for ve_device (PSBM-30024)

    vzcpt: Do not call nf_nat_cleanup_conntrack() in undump_one_ct() (#3151, PSBM-30844) 
```

Weiterhin scheint es als wäre /sys problemlos gemountet:

```
 mount

/var/lib/vz/private/112 on / type simfs (rw,relatime)

proc on /proc type proc (rw,relatime)

sysfs on /sys type sysfs (rw,relatime)

tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)

udev on /dev type devtmpfs (rw,nosuid,relatime,size=10240k,mode=755)

devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)

shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime)

cgroup_root on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755)

/var/lib/vz/private/112 on /tmp type simfs (rw,noexec,relatime)

binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
```

Hat jemand einen Ansatz für mich den ich verfolgen könnte?

----------

## Raze

Ich konnte das Problem soeben lösen.

Auf Systemen, auf denen sysfs ein eigenes init-Script hat ( bin mal gerade zu faul heraus zu suchen ab welcher openrc-Version das der Fall ist ) muss in der rc.conf folgendes gesetzt sein:

```
rc_controller_cgroups="NO"

```

Anschließend funktioniert wieder alles wie gehabt.

#Problemediedieweltnichtbraucht   :Rolling Eyes: 

Edit:

Es scheint doch nicht zweifelsfrei anhand dessen festlegbar sein ob sysfs ein separates init-Script hat. An der Behebung des Problems ändert sich aber nichts.

----------

## Raze

```
Calculating dependencies... done!

[ebuild     U  ] sys-apps/busybox-1.23.0 [1.21.0] USE="ipv6 pam static -debug% -livecd -make-symlinks -math -mdev -savedconfig (-selinux) -sep-usr -syslog -systemd" 2201 KiB

[ebuild     U  ] sys-apps/openrc-0.13.8 [0.12.4] USE="ncurses netifrc pam unicode -debug -newnet (-prefix) (-selinux) -static-libs -tools" 148 KiB

[ebuild     U  ] sys-apps/kmod-19 [18-r1] USE="tools zlib -debug -doc -lzma -python -static-libs" PYTHON_TARGETS="python2_7 python3_3 -python3_4" 1440 KiB

[ebuild     U  ] net-fs/nfs-utils-1.3.1-r1 [1.2.9-r3] USE="ipv6 libmount nfsidmap nfsv4 tcpd uuid -caps -kerberos -nfsdcld -nfsv41 (-selinux)" 768 KiB

[ebuild     U  ] sys-fs/udev-init-scripts-27 [26-r2] 4 KiB

[blocks b      ] <sys-fs/udev-init-scripts-27 ("<sys-fs/udev-init-scripts-27" is blocking sys-apps/openrc-0.13.8)
```

Nach den Updates von openrc und den udev-init-scripts fährt mein portage-server auch ohne die Anpassung in der rc.conf sauber hoch, sysfs wird korrekt eingehangen, Netzwerkschnittstellen fahren sauber hoch.

----------

