Error locating any hugetable limits (cgroup/path issue) resulting in empty hypervisor list
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
StarlingX |
Fix Released
|
Critical
|
Jim Gauld |
Bug Description
Brief Description
-----------------
Failure locating any hugetable limits - cgroup/path issue. Results in empty openstack hypervisor list.
Severity
--------
major
Steps to Reproduce
------------------
1. Install and configure lab (running a reapply)
2. Check that the openstack-
3. Confirm that worker nodes are unlocked, enabled and available and hypervisors are running on each worker node.
Expected Behavior
------------------
Expected hypervisors to exist on the worker node.
Actual Behavior
----------------
No hypervisors. The error appears to be cgroup and hugepage related (kubepods path doesn't exist)
cannot access /sys/fs/
$ nova hypervisor-list
+----+-
| ID | Hypervisor hostname | State | Status |
+----+-
+----+-
[wrsroot@
ontroller-0:~$ kubectl get pods -n openstack -o wide | grep libvirt
libvirt-
libvirt-
libvirt-
controller-0:~$ kubectl logs -n openstack libvirt-
++ grep libvirtd
....
+ '[' -n '' ']'
+ rm -f /var/run/
+ [[ -c /dev/kvm ]]
+ chmod 660 /dev/kvm
+ chown root:kvm /dev/kvm
+ CGROUPS=
+ for CGROUP in cpu rdma hugetlb
+ '[' -d /sys/fs/cgroup/cpu ']'
+ CGROUPS+=cpu,
+ for CGROUP in cpu rdma hugetlb
+ '[' -d /sys/fs/cgroup/rdma ']'
+ for CGROUP in cpu rdma hugetlb
+ '[' -d /sys/fs/
+ CGROUPS+=hugetlb,
+ cgcreate -g cpu,hugetlb:
++ cat /proc/meminfo
++ grep HugePages_Total
++ tr -cd '[:digit:]'
INFO: Detected hugepage count of '108145'. Enabling hugepage settings for libvirt/qemu.
+ hp_count=108145
+ '[' 0108145 -gt 0 ']'
+ echo 'INFO: Detected hugepage count of '\''108145'\''. Enabling hugepage settings for libvirt/qemu.'
++ grep KVM_HUGEPAGES=0 /etc/default/
grep: /etc/default/
+ '[' -n '' ']'
+ echo KVM_HUGEPAGES=1
+ '[' '!' -d /dev/hugepages ']'
+ '[' -d /sys/fs/
++ ls '/sys/fs/
ls: cannot access /sys/fs/
+ limits=
+ echo 'ERROR: Failed to locate any hugetable limits. Did you set the correct cgroup in your values used for this chart?'
ERROR: Failed to locate any hugetable limits. Did you set the correct cgroup in your values used for this chart?
+ exit 1
Reproducibility
---------------
yes
System Configuration
-------
2+3
(Optional Hyperthreaded, low-latency lab yow-cgcs-
Branch/Pull Time/Commit
-------
BUILD_ID=
Timestamp/Logs
--------------
summary: |
Error locating any hugetable limits (cgroup/path issue) resulting in - empty hypevisor list + empty hypervisor list |
Changed in starlingx: | |
assignee: | nobody → Jim Gauld (jgauld) |
Note that Austin first reported this issue when integrating with my feature https:/ /review. openstack. org/#/c/ 648511/ .
This issue did not show up on my system, but showed up on Hardware.
I think we can likely workaround this issue without having to modify the libvirt chart, by disabling cgroup controllers we don't need; as systemd by default enables them all.
EG, nodev,noexec, mode=755) cgroup/ systemd type cgroup (rw,nosuid, nodev,noexec, relatime, xattr,release_ agent=/ usr/lib/ systemd/ systemd- cgroups- agent,name= systemd) cgroup/ hugetlb type cgroup (rw,nosuid, nodev,noexec, relatime, hugetlb) cgroup/ net_cls, net_prio type cgroup (rw,nosuid, nodev,noexec, relatime, net_prio, net_cls) cgroup/ blkio type cgroup (rw,nosuid, nodev,noexec, relatime, blkio) cgroup/ cpu,cpuacct type cgroup (rw,nosuid, nodev,noexec, relatime, cpuacct, cpu) nodev,noexec, relatime, pids) cgroup/ perf_event type cgroup (rw,nosuid, nodev,noexec, relatime, perf_event) cgroup/ freezer type cgroup (rw,nosuid, nodev,noexec, relatime, freezer) cgroup/ devices type cgroup (rw,nosuid, nodev,noexec, relatime, devices) cgroup/ memory type cgroup (rw,nosuid, nodev,noexec, relatime, memory) cgroup/ cpuset type cgroup (rw,nosuid, nodev,noexec, relatime, cpuset)
mount|grep cgroup
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,
cgroup on /sys/fs/
cgroup on /sys/fs/
cgroup on /sys/fs/
cgroup on /sys/fs/
cgroup on /sys/fs/
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,
cgroup on /sys/fs/
cgroup on /sys/fs/
cgroup on /sys/fs/
cgroup on /sys/fs/
cgroup on /sys/fs/
I am in process testing whether I can just append cgroup_ disable= hugetlb grub argument.