ラベル CentOS7 の投稿を表示しています。 すべての投稿を表示
ラベル CentOS7 の投稿を表示しています。 すべての投稿を表示

N54LでCentOS7が起動しなくなる問題の回避方法

以前、この記事で、HP N54LにインストールしたCentOS7をアップデートしたらカーネルが起動しなくなったことを報告した。カーネルのコマンドラインに次の設定を追加することで回避できることが分かった。
initcall_blacklist=clocksource_done_booting
CentOS7なら/etc/default/grubのGRUB_CMD_LINE_LINUX行に以下のように設定を追加。
GRUB_CMDLINE_LINUX="vconsole.keymap=us vconsole.font=latarcyrheb-sun16 rhgb quiet initcall_blacklist=clocksource_done_booting"
そののち、次のコマンドでgrub.confに反映してリブート。
# grub2-mkconfig -o /boot/grub2/grub.cfg

CentOS7で全てのLXCインスタンスの稼働状態を表示する

CentOS7のlxc-infoコマンドは、Ubuntu 15.10のような-fオプションがない。なので、すべてのコンテナの稼働状態を一度に表示できない。

次のようにlxc-infoと組み合わせることで似たようなことは可能になる。
 # lxc-ls | awk '{ print "lxc-info -n " $1 }' FS=" " | sh
Name:           lotus
State:          STOPPED
Name:           renkon
State:          STOPPED
Name:           sa
State:          STOPPED
sedを使ったバージョン
# lxc-ls | sed -e "s/ /\n/g" -e  "s/^/lxc-info -n /" | sh

CentOS7でUbuntuのLXCコンテナを作成する

debootstrapをインストール
# yum install debootstrap
qemu-debootstrapというコマンドが必要だが、以下のようにして作成。
# cp /usr/sbin/debootstrap /usr/local/sbin/qemu-debootstrap
qemu-debootstrapのDEF_HTTPS_MIRROR行を次のように変更
DEF_HTTPS_MIRROR="https://mirrors.kernel.org/ubuntu"
あとは、lxc-createコマンドを実行すればOK
# lxc-create -t ubuntu -n name

LXCのCentOS7でhttpdがインストールできない問題の対処

httpdをyumでインストールしようとしたところ、以下のエラーが表示され、失敗した。
error: unpacking of archive failed on file /usr/sbin/suexec: cpio: cap_set_file
ホストマシンの/usr/share/lxc/config/centos.common.confでsetfcapをドロップから除外したところ、解決された。
#lxc.cap.drop = mac_admin mac_override setfcap
lxc.cap.drop = mac_admin mac_override
参考 CentOS 7.0のlxcでゲストにCentOSを使う時の問題を改善する。

CentOS 7.0のlxcでゲストにCentOSを使う時の問題を改善する。

デフォルトだと起動がすごく遅い。

こののサイトを参考に以下のファイルから、setpcapを削除するとうまくいった。
  • /usr/share/lxc/config/centos.common.conf
    •  lxc.cap.drop =行

systemd-journalのCPU負荷が100%になる。

ここを参考に以下のように改善。なお、この現象はsystemdを使用するUbuntu15.04でも発生する。
  •  /var/lib/lxc/{container}/configに以下を追加
    • lxc.autodev = 1
    • lxc.kmsg = 0
  •  /var/lib/lxc/{container}/rootfs/lib/systemd/system/getty@.serviceの次の行をコメントアウト
    •  ConditionPathExists=/dev/tty0

CentOS 7でOpenVPNサーバの起動後にスクリプトを実行する。

confファイルに以下のように記述すると、OpenVPNサーバの起動後にそのスクリプトを実行できるが、デフォルトではそれが抑止されている。
up "/etc/openvpn/up.sh"
以下のように設定ファイルのExecStart行に--script-security 2を追加する。
# cat /etc/systemd/system/multi-user.target.wants/openvpn@.service
(省略)
ExecStart=/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf --script-security 2
最後に、systemdに設定ファイルを再読み込みさせる。
# systemctl daemon-reload

CentOS7でクラッシュカーネルをロードせずに空きメモリを増やす

Crashカーネルが常駐しているかは、/proc/iomemにCrash kernel行があるか否かで判別できます。
$ cat /proc/iomem  | grep Crash
  2c000000-360fffff : Crash kernel
Crashカーネルを取り除くには、/etc/deafult/grubからcrashkernel=autoを削除します。
 GRUB_DEFAULT=saved
 GRUB_DISABLE_SUBMENU=true
 GRUB_TERMINAL_OUTPUT="console"
-GRUB_CMDLINE_LINUX="vconsole.keymap=us crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet"
+GRUB_CMDLINE_LINUX="vconsole.keymap=us vconsole.font=latarcyrheb-sun16 rhgb quiet"
 GRUB_DISABLE_RECOVERY="true"
その後、以下のようにして/etc/grub2.cfgを更新し、再起動すればOK。これで、100数十MBの空きメモリが増えるはず。
# grub2-mkconfig > /etc/grub2.cfg