So-net無料ブログ作成

CentOS 7.4へのアップデートでの不具合 [CentOS]

CentOS 7.3 から CentOS 7.4 へのアップデートを行った。
その際、32 bit 版パッケージがインストールされる不具合が発生した。
詳細は、以下の通りである。

1. 発生事象


32 bit 版パッケージがインストールされてしまう。

(補足)
・アップデート前の環境には、32 bit 版パッケージはインストールされていない。
・当該パッケージの 64 bit 版がインストールされている。
・当該パッケージの一覧は備考を参照。


2. 対処方法


当該パッケージをアン・インストールする。

# rpm -e `rpm -qa | grep '\.i[3-6]86$'`


(補足)
上記のアン・インストール後もシステムは正常に動作する。


[備考]


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

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



nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

Pacemaker + Corosyncのクラスタ環境での制約条件の設定 [CentOS]

Pacemaker + Corosync のクラスタ環境に DRBD リソースを追加することになった。
そこで、以前実施した 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=


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

GNOME-3からMATEへの移行 [CentOS]

CentOS 7.3 において GNOME-3(classic mode) を使用してきたが、使いづらいため MATE への移行を行った。
以下は、必要最小限のパッケージのみをインストールする方針で実施した手順である。
(正常に動作はするが、ワーニング・メッセージが出力される場合がある。)

# ソフトウェアのバージョン
・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

[追記]


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

存在しないホスト名が127.0.0.1に名前解決される [CentOS]

1. 発生事象


CentOS 6.9 において、存在しないホスト名が 127.0.0.1 に名前解決される。

% ping aaa
PING aaa.private.net (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): \
icmp_seq=1 ttl=64 time=0.034 ms
…


(補足)
・名前解決は、/etc/hosts、DNS の順に参照する。
 (/etc/nsswitch.conf の設定)
・/etc/hosts に当該ホスト名は存在しない。
・DNS では当該ホスト名が名前解決されない(host aaa の実行)。
・/etc/resolv.conf には、ISP のネームサーバーの設定のみを行っている。
 (domain/search の設定は行っていない。)
・ローカル・ドメインには、ダミーのドメイン名を付いている。
 (private.net: 192.168.0.0)
・CentOS 7.3 でも同様である。
・Debian 7/8 では発生しない。


2. 対処方法


/etc/resolv.conf において、domain または search で ISP のドメイン名を設定する。

% ping aaa
ping: unknown host aaa


リストア後のsystemd-journaldのエラー [CentOS]

CentOS 7.3 において、システムのリストア後に systemd-journald のエラーが発生するようになってしまった。
発生事象と対処方法は、以下の通りである。

1. 発生事象


システムのリストア後に systemd-journald のエラーが発生する。

systemd-journald[807]: Failed to write entry (9 items, 267 bytes), \
ignoring: Bad address

2. 対処方法


下記の手順を実施する。

(1) ファイルの特定

# journalctl --verify


(2) 当該ファイルの削除


FAIL: と表示されるファイル(*.journal) を削除する。


(3) systemd-journald の再起動

# systemctl restart systemd-journald

3. 備考


systemd-journald のバグとのこと。

cf.
https://bugzilla.redhat.com/show_bug.cgi?id=1069828
https://access.redhat.com/discussions/2100681



CentOS 7でgpmが機能しない [CentOS]

1. 発生事象


CentOS 7 で gpm が機能しない。

[ソフトウェアのバージョン]
gpm-libs-1.20.7-5.el7.x86_64
gpm-1.20.7-5.el7.x86_64
kernel-3.10.0-514.10.2.el7.x86_64

(補足)
・当該サービスの起動は正常にできている。
・当該サービスを再起動しても状況は変わらない。
・稀に機能することがある。


2. 対処方法


カーネルを下記のバージョンに変更すると機能するようになる。
・kernel-3.10.0-229.20.1.el7.x86_64



CentOS 7のMD+LVM化で/が認識されない [CentOS]

CentOS 7.3 において、標準パーティション環境から MD+LVM 環境への移行を行った。
実施した手順は、下記の通りである。

・mdadm での MD デバイスの作成
・MD デバイス上での LVM の作成(ただし、/boot 用のデバイスを除く)
・PV/VG/LV/FS の作成(ただし、/boot 用デバイスでは FS のみ作成)
・当該ファイルのコピー
・/etc/mdadm.conf の更新、initrd ファイルの更新

その際、ブート時に / (root) パーティションが認識されない状況になってしまった。
以下は、備忘録として発生事象と対処方法をまとめたものである。

1. 発生事象


MD+LVM 環境で、ブート時に / 用の LV が認識されない。

[出力されるメッセージ]
dracut-initqueue[pid]: Warning: dracut-initqueue timeout \
- starting timeout scripts

(補足)
・MD なしの LVM 環境では、問題は発生しない。
・下記の状態から進まない。
 Started dracut pre-mount hook.
 A start job is running for .service


2. 対処方法


下記のカーネル・オプション(kernel 行に設定するオプション)を追加する。

・rd.auto rd.auto=1


3. 参考資料


(1) dracut のマニュアル - DRACUT.CMDLINE(7)


rd.auto rd.auto=1
 enable autoassembly of special devices like cryptoLUKS, dmraid,
 mdraid or lvm. Default is off as of dracut version >= 024.

 cf. http://man7.org/linux/man-pages/man7/dracut.cmdline.7.html



CentOS 6.9へのアップデート [CentOS]

CentOS 6.8 から 6.9 へのアップデートを行った。
インストールするパッケージに依存するが、今回のアップデートは以下のような結果であった。

1. アップデートによるパッケージ数の増減はない。

2. 新たな不具合の発生はない。

3. rsh、telnet でログインした時のログイン処理の不具合が改善されている。


[該当する不具合]
http://dan-project.blog.so-net.ne.jp/2016-07-02

該当するパッケージは、下記の通り。
・libblkid-2.17.2-12.28.el6.i686
・libuuid-2.17.2-12.28.el6.i686
・util-linux-ng-2.17.2-12.28.el6.i686



chronyでのNTPサーバーの構築 [CentOS]

CentOS 7.3 上で NTP サーバーの構築を行った。
ntpd を使用することも可能であるが、今回は chrony を使用した。
最低限必要な手順は、以下の通りである。

1. ファイアウォールの設定確認


下記の通信が許可されていることを確認する。

・上位 NTP サーバーの 123/udp ポートへのアクセス
・NTP クライアントからの 123/udp ポートへのアクセス


2. /etc/chrony.conf の編集


(1) 上位 NTP サーバーの指定

server <ntp-server-1> iburst
...


iburst: 起動時に短い間隔で問い合わせ、初回の同期に要する時間を短縮する。


(2) 時刻同期を許可する NTP クライアントの指定

(例)
allow 192.168.0.0/24


デフォルト値: 全ノード拒否


3. chronyd の再起動
# systemctl restart chronyd

4. 備考


(1) 時刻同期の状況確認

# chronyc [-n] sources


・-n: 逆引きの名前解決を行わない(IP アドレスで表示する)。
・実行結果の S 欄が * の NTP サーバーと時刻同期を行っている。


(2) 上位 NTP サーバーと時刻同期できない場合の発生事象


NTP クライアントが NTP サーバーと時刻同期できない(ntpd の場合と同様)。
よって、通常は 上位 NTP サーバーを複数指定する。


[追記]