CentOS 7.6へのアップデート後の不具合 [CentOS]
[ソフトウェアのバージョン]
・xorg-x11-server-Xorg-1.20.1-5.1.el7.x86_64
・xorg-x11-server-utils-7.7-20.el7.x86_64
・xorg-x11-utils-7.5-23.el7.x86_64
・xorg-x11-xkb-utils-7.7-14.el7.x86_64
・emacs-24.3-22.el7.x86_64
・xterm-295-3.el7.x86_64
1. 発生事象
ウィンドウ間のコピー・ペーストができないことがある。
・コピー・ペーストでウィンドウのフォーカスを移動できない。
(マウスの移動に追随してフォーカスが移動するように設定している。)
・X の初回起動時に発生することが多い。
・X の初回起動時に発生しない場合には、以後も発生しない。
・MATE 1.16、FVWM 2.6 で発生することを確認
・CentOS 7.5 では発生しない。
再現方法は、下記の通りである。
(1) Emacs、Xterm を起動する。
(2) Emacs (または Xterm) 上で適当なコマンド実行し、実行結果の一部を選択する。
(例)
・'ls -l' を実行
・実行結果のいずれかの行で、月の値をマウスで選択する。
(3) 他方のウィンドウにマウスカーソルを移動する。
ここで、ウィンドウのフォーカスを移動できない。
2. 対処方法
下記の手順により X を再起動すると改善される。
・フォーカスされているウィンドウを終了する。
(exit の実行、ウィンドウのクローズ、等)
・X を終了する。
・X の終了後、再度 X を起動する。
(補足)
・最初に X を再起動することで、問題事象の発生を抑止できるかも知れない。
・現時点では、原因は不明である。
・X 関連のパッケージのバグの可能性が高い。
CentOS 7.6へのアップデート [CentOS]
基本的な手順はこれまでと同じであるが、MATE 関連で想定外の事象が発生した。
以下は、備忘録として発生事象と対処方法をまとめたものである。
1. EPEL にある MATE 関連のパッケージとの依存関係の解決
(1) 発生事象
MATE 関連のパッケージとの依存関係を解決しない場合、下記のエラーが発生する。
---> Package libgtop2.x86_64 0:2.34.2-2.el7 will be updated --> Processing Dependency: libgtop-2.0.so.10()(64bit) for package: \ mate-applets-1.16.0-1.el7.x86_64 --> Processing Dependency: libgtop-2.0.so.10()(64bit) for package: \ marco-1.16.1-3.el7.x86_64 --> Finished Dependency Resolution Error: Package: marco-1.16.1-3.el7.x86_64 (@epel) Requires: libgtop-2.0.so.10()(64bit) Removing: libgtop2-2.34.2-2.el7.x86_64 (@base) libgtop-2.0.so.10()(64bit) Updated By: libgtop2-2.38.0-3.el7.x86_64 (base) ~libgtop-2.0.so.11()(64bit) Error: Package: mate-applets-1.16.0-1.el7.x86_64 (@epel) Requires: libgtop-2.0.so.10()(64bit) Removing: libgtop2-2.34.2-2.el7.x86_64 (@base) libgtop-2.0.so.10()(64bit) Updated By: libgtop2-2.38.0-3.el7.x86_64 (base) ~libgtop-2.0.so.11()(64bit) You could try using --skip-broken to work around the problem
(2) 対処方法
まず、下記の手順により、更新可能な EPEL パッケージの情報を取得する。
# env LANG=C yum --disablerepo=* --enablerepo=epel list updates \ > /tmp/updated-pkg-epel.log
次に、下記のパッケージを更新の対象に追加する。
・marco.x86_64
・mate-applets.x86_64
2. MATE のパネルのフォントが滲むことへの対応
(1) 発生事象
CentOS 7.6 への更新後、MATE のパネルのフォントが滲むようになった。
(2) 対処方法
設定ファイルでの当該フォントの識別子が変更されたようである。
このため、設定内容(指定したフォント)が引き継がれない。
よって、下記の手順により、再度フォントの設定を行う。
・[システム] -> [設定] -> [外観の設定] を選択
・[フォント] タグを選択
・フォントの指定
再設定前後での設定内容は、それぞれ下記の通りである。
(再設定前) アプリケーション: さざなみゴシック Gothic-Regular 10 ドキュメント: さざなみゴシック Gothic-Regular 9 デスクトップ: さざなみゴシック Gothic-Regular 10 ウィンドウのタイトル: さざなみゴシック Gothic-Regular 9 固定幅のフォント: Monospace 9 (再設定後) アプリケーション: Sazanami Gothic 10 ドキュメント: Sazanami Gothic 9 デスクトップ: Sazanami Gothic 10 ウィンドウのタイトル: Sazanami Gothic 9 固定幅のフォント: Monospace 9
3. 備考
CentOS 7.6 へのアップデートにより、下記のパッケージが追加/削除される。
(追加されるパッケージ) - 14 個のパッケージ boost-random.x86_64 daxctl-libs.x86_64 libblockdev-nvdimm.x86_64 libglvnd.x86_64 libglvnd-egl.x86_64 libglvnd-gles.x86_64 libglvnd-glx.x86_64 libsmartcols.x86_64 libwayland-egl.x86_64 mozjs52.x86_64 ndctl.x86_64 ndctl-libs.x86_64 python2-blockdev.x86_64 python2-subprocess32.x86_64 (削除されるパッケージ) - 1 個のパッケージ mesa-libwayland-egl.x86_64
ハードディスクへのアクセス障害発生後、特定のブートができなくなった [CentOS]
以下は、備忘録として、発生事象と対処方法をまとめたものである。
1. 発生事象
マルチブート環境において、下記のブートができなくなった。
・Linux の GRUB Legacy からの Windows 7 のブート
Error 13: Invalid or unsupported excutable format と出力される。
・GRUB Legacy でのチェイン・ブート
再度 1 段目の GRUB メニューが表示され、ブートできない。
(補足)
・チェイン・ブートしない場合にはブートできる。
・2 個目のディスクを無効化(SATA ケーブルを抜線)すると、Windows 7 は起動できる。
Windows 7 は 1 個目のディスクにインストールされている。
・grub-install を再実行しても改善されない。
2. 原因
BIOS の設定において、Disk1 と Disk2 が逆順に設定された状態になっていた。
(/dev/sd[ab] とディスクの関係が逆に設定されていた。)
なお、なぜこのような状況になったのかは不明である。
3. 対処方法
BIOS の設定画面において、Disk1 と Disk2 の順序を修正する。
・/dev/sda と /dev/sdb に接続されるディスクの設定を正しい値に修正する。
CentOS 6のClamAVのウィルス・チェックでエラーが発生する件の対処方法 [CentOS]
詳細は、以下の通りである。
1. 発生事象
https://dan-project.blog.so-net.ne.jp/2018-07-18
2. 対処方法
EPEL の testing パッケージに更新する。
・clamav-0.100.1-2.el6.i686.rpm
・clamav-db-0.100.1-2.el6.i686.rpm
(補足)
・cf. http://dl.fedoraproject.org/pub/epel/testing/6/i386/Packages/c/
・しばらくすると、EPEL のパッケージになると思われる。
CentOS 6のClamAVのウィルス・チェックでエラーが発生する [CentOS]
・clamav-0.100.0-1.el6.i686 (EPEL のパッケージ)
・clamav-db-0.100.0-1.el6.i686 (EPEL のパッケージ)
1. 発生事象
ClamAV のウィルス・チェックでエラーが発生する。
[エラーメッセージ]
LibClamAV Error: cli_cvdload: Corrupted CVD header
LibClamAV Error: Can't load /var/lib/clamav/daily.cld: Malformed database
ERROR: Malformed database
(補足)
・CentOS 6/7 と Debian 8/9 をマルチブートしており、ウィルス情報を共有している。
(ウィルス情報: /var/lib/clamav/)
・CentOS 7(EPEL のパッケージ)、Debian 8/9 の ClamAV では発生しない。
・CentOS 6(EPEL のパッケージ) の clamav-0.99-* では発生しない。
2. 対処方法
[古いパージョン(v99.*) の RPM パッケージを入手できる場合]
古いバージョンにバージョンダウンする。
[上記以外の場合]
更新パッケージのリリースを待つ。
(補足)
パッケージのバグのようである。
cf. https://bugzilla.redhat.com/show_bug.cgi?id=1600458
CentOS 7.5へのアップデート後の不具合の発生 [CentOS]
詳細は、以下の通りである。
[ソフトウェアのバージョン]
・virt-manager-1.4.3-3.el7.noarch
・libvirt-daemon-3.9.0-14.el7_5.4.x86_64
1. 発生事象
CentOS 7.5 への更新後、KVM で起動できないドメインが発生する。
[エラーメッセージ] Error starting domain: サポートされない設定: shared access for disk 'hdc' \ requires use of supported storage format
[hdc の設定] - /etc/libvirt/qemu/xxx.xml <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/libvirt/images/cluster-common.qcow2'/> <target dev='hdc' bus='ide'/> <shareable/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk>
・hdc はクラスタ・ノード間で共有するディスクである。
2. 対処方法
該当するパッケージを CentOS 7.4 のものにバージョンダウンする。
[該当するパッケージ]
・libvirt-*
・virt-install-*
・virt-manager-*
(補足)
該当するパッケージの詳細については、備考を参照。
2-1. CentOS 7.4 のバックアップ・データが存在する場合の手順
(1) バックアップ・データを使用し、CentOS 7.4 に戻す。
(2) 該当するパッケージ以外をアップデートする。
2-2. CentOS 7.4 のバックアップ・データが存在しない場合の手順
該当するパッケージを CentOS 7.4 のものにバージョンダウンする。
3. 備考
(1) 関係するパッケージ
下記のパッケージへのアップデートにより、上記の問題を発生する。
libvirt-3.9.0-14.el7_5.4.x86_64 libvirt-client-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-config-network-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-config-nwfilter-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-interface-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-lxc-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-network-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-nodedev-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-nwfilter-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-qemu-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-secret-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-storage-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-storage-core-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-storage-disk-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-storage-gluster-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-storage-iscsi-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-storage-logical-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-storage-mpath-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-storage-rbd-3.9.0-14.el7_5.4.x86_64 libvirt-daemon-driver-storage-scsi-3.9.0-14.el7_5.4.x86_64 libvirt-glib-1.0.0-1.el7.x86_64 libvirt-libs-3.9.0-14.el7_5.4.x86_64 libvirt-python-3.9.0-1.el7.x86_64 virt-install-1.4.3-3.el7.noarch virt-manager-1.4.3-3.el7.noarch virt-manager-common-1.4.3-3.el7.noarch
また、CentOS 7.4 での当該パッケージは、下記の通りである。
libvirt-3.2.0-14.el7_4.9.x86_64 libvirt-client-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-config-network-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-config-nwfilter-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-interface-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-lxc-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-network-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-nodedev-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-nwfilter-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-qemu-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-secret-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-storage-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-storage-core-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-storage-disk-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-storage-gluster-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-storage-iscsi-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-storage-logical-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-storage-mpath-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-storage-rbd-3.2.0-14.el7_4.9.x86_64 libvirt-daemon-driver-storage-scsi-3.2.0-14.el7_4.9.x86_64 libvirt-glib-1.0.0-1.el7.x86_64 libvirt-libs-3.2.0-14.el7_4.9.x86_64 libvirt-python-3.2.0-3.el7_4.1.x86_64 virt-install-1.4.1-7.el7.noarch virt-manager-1.4.1-7.el7.noarch virt-manager-common-1.4.1-7.el7.noarch
CentOS 7.4へのアップデートでの不具合 [CentOS]
その際、32 bit 版パッケージがインストールされる不具合が発生した。
詳細は、以下の通りである。
1. 発生事象
32 bit 版パッケージがインストールされてしまう。
(補足)
・アップデート前の環境には、32 bit 版パッケージはインストールされていない。
・当該パッケージの 64 bit 版がインストールされている。
・当該パッケージの一覧は備考を参照。
2. 対処方法
当該パッケージをアン・インストールする。
# rpm -e `rpm -qa | grep '\.i[3-6]86$'`
(補足)
上記のアン・インストール後もシステムは正常に動作する。
Pacemaker + Corosync + DRBD でのクラスタ環境の構築 [CentOS]
・pacemaker-1.1.12-8.el6_7.2.i686
・corosync-1.4.7-2.el6.i686
・kmod-drbd84-8.4.7-1_1.el6.elrepo.i686
・drbd84-utils-8.9.5-1.el6.elrepo.i686
・OS: CentOS 6.7
1. 要件
Pacemaker + Corosync のクラスタリング環境に DRBD リソースを追加する。
2. DRBD の導入
(1) パッケージのインストール
下記のパッケージをインストールする。
・kmod-drbd84-8.4.7-1_1.el6.elrepo.i686
・drbd84-utils-8.9.5-1.el6.elrepo.i686
(2) DRBD の設定
/etc/drbd.d/{global_common.conf,r0.res} を下記のように変更する。
(詳細は備考を参照)
(a) 対象のノード
・vm2.private.net(192.168.0.22)
・vm3.private.net(192.168.0.23)
(b) ディスクのデバイス・パス
/dev/sdc1
(c) DRBD デバイス
/dev/drbd0
(d) タイムアウト値
wfc-timeout 30
3. DRBD の自動機能の停止
# chkconfig drbd off # chkconfig --list drbd
4. リソースの定義
(1) DRBD
# pcs resource create drbd ocf:linbit:drbd \ drbd_resource=r0 \ op monitor interval=20s ## Master/Slave 型のリソースとしての定義 # pcs resource master ms-drbd drbd \ master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
(2) ファイルシステム
# pcs resource create fs-drbd ocf:heartbeat:Filesystem \ device=/dev/drbd0 directory=/share-drbd fstype=ext3 \ op monitor interval=20s
(3) 既存リソースとの制約条件の設定
# pcs resource group add group-1 fs-drbd --before fs-nfs # pcs constraint colocation add master ms-drbd with group-1 INFINITY # pcs constraint order promote ms-drbd then start group-1 (補足) # pcs resource group list group-1: fs-drbd fs-nfs nfs-server vip-check vip
(4) その他
エラーが発生する場合には、当該リソースの故障履歴をクリアする。
(例) # pcs resource cleanup drbd # pcs resource cleanup fs-drbd # pcs resource cleanup ...
5. 備考
(1) DRBD の構築手順
cf. http://dan-project.blog.so-net.ne.jp/2016-05-10
Pacemaker + Corosyncのクラスタ環境での制約条件の設定 [CentOS]
そこで、以前実施した Pacemaker の構築手順の見直しを行った。
以下は、その際に気づいたことをまとめたものである。
[ソフトウェアのバージョン]
・pacemaker-1.1.12-8.el6_7.2.i686
・corosync-1.4.7-2.el6.i686
・OS: CentOS 6.7
1. リソースの制約条件
クラスタで管理するリソースには、下記のような制約条件を設定できる。
・リソースを起動するノードの選択方法
・リソースの起動順序
2. リソース間の制約条件の設定方法
(1) リソースを起動するノードの選択方法
# pcs constraint colocation add <res-id-1> with <res-id-2>
・リソース-2(res-id-2) と同じノードでリソース-1(res-id-1) を起動する。
(2) リソースの起動順序
# pcs constraint order <res-id-1> then <res-id-2>
・リソース-1(res-id-1) の後にリソース-2(res-id-2) を起動する。
(補足)
・リソースの数が多くなると、制約条件の管理が面倒になる。
・リソースグループを定義すると、制約条件の管理の手間を軽減できる。
3. リソースグループに適用される制約条件
・同じリソースグループのリソースは、同じノードで起動される。
・リソースグループの定義時に指定した順序でリソースが起動される。
・リソースグループの定義時に指定した逆順でリソースが停止される。
4. migration-threshold の設定
同一リソースの障害が何回発生した時にフェイルオーバーするかを指定できる。
リソースの失敗回数との比較結果により、対応方法が異なる。
・失敗回数が migration-threshold 未満: 当該リソースの再起動を実施
・失敗回数が migration-threshold 以上: フェイルオーバーを実施
(1) 設定
# pcs resource defaults migration-threshold=<count>
・デフォルト値: INFINITY (無限)
(2) 設定の確認
# pcs resource defaults
(3) 設定の削除
# pcs resource defaults migration-threshold=
GNOME-3からMATEへの移行 [CentOS]
以下は、必要最小限のパッケージのみをインストールする方針で実施した手順である。
(正常に動作はするが、ワーニング・メッセージが出力される場合がある。)
# ソフトウェアのバージョン
・GNOME 3.14
・MATE 1.16
1. GNOME のアン・インストール
# yum remove gnome-* ... (注1) # rpm -qa | grep gnome # rpm -e <GNOME 関連のパッケージ> ... (注2)
(注1)
依存関係により、必要なパッケージがアン・インストールされることがある。
今回は、下記のパッケージがアン・インストールされたため、後で再インストールする。
・fvwm
・xlockmore
・virt-manager (KVM がインストールされている場合)
(注2)
wireshark-gnome はアン・インストールしない。
2. アン・インストールされたパッケージの再インストール
3. mate-desktop のインストール
# yum --enablerepo=epel install mate-desktop.x86_64
4. MATE 用の追加パッケージのインストール
# yum --enablerepo=epel install mate-settings-daemon.x86_64 # yum --enablerepo=epel install mate-applets.x86_64 ... (注1) # yum --enablerepo=epel install mate-media.x86_64 ... (注2) # yum --enablerepo=epel install mozo.noarch # yum --enablerepo=epel install mate-icon-theme.noarch # yum --enablerepo=epel install mate-themes.noarch
(注1) パネルにごみ箱を表示するため。
(注2) パネルに音量調整ツールを表示するため。
5. セッションの開始コマンドの変更
~/.xinitrc、~/.Xclients 等を編集する。
(変更前) export GNOME_SHELL_SESSION_MODE=classic exec gnome-session --session=gnome-classic (変更後) exec mate-session