Hyper-VクラスタにCentOS 6.2 Webサーバーを構築していますが、大きな問題に直面しました。現在の設定は次のとおりです。
オペレーティングシステム:セントOS 6.2。最小サーバーのインストール インストールされたソフトウェアには以下が含まれます。
- Hyper-V Linux統合ドライバ
- インターネット感度
- Apache 2
- MySQL 5.*
- APC PHPアクセラレータを使用したPHP 5
- WebサーバーがMoodleを実行しています。 (もし言及すると違いがあります。)
私が最後にインストールしたのは「Hyper-V Linux統合ドライバ」その後、数日後、コンソールで「120秒以上の操作がブロックされました」というエラーでOS全体がロックされました。私は今このバグが長いランタイムにわたって醜い結果をもたらし、2回目のダウンロード後にyum updateコマンドフラグによってトリガされることを発見しました。
私はfsck
成功しなかった他のフォーラムで次の提案を試しました。他のほとんどのフォーラムでは、ここでHyper-Vクラスタが利用できないため、ハードウェアの問題を指摘しています(現在問題なく需要の高い12のサービスを実行しています)。
編集:(まず言及する必要があります)このエラーは、カーネル全体がロックされる前に最後に表示されるエラーです。この後の問題を解決する唯一の方法は、仮想マシンをハード再起動することです。
問題の解決や診断にご協力いただきありがとうございます。
よろしくお願いします)
アップデート1:
さて、ここで真剣にアップグレードしてください。これで、同じクラスタ内の他の2つのLinuxシステムに関連する問題があり、両方が同時にクラッシュしました。状態について不平を言うUbuntuサーバーが1つあります:{DRDY}、2番目のCentOS 6.2サーバーは最初のサーバーと同じエラーについて不平を言い、最初のサーバーは新しい方法でクラッシュします。
Ubuntu DRDYエラー
最初のCentOSカーネルの競合
アップデート2: いいですね。クラスタを修正しましたが、両方のCentOS VMで問題が解決しません。 CentOSの最初の問題は、クラスタ化されていないHyper-Vに移動し、すべてのLinux統合ドライバをブラックリストに追加し、完全に削除することで解決しました。クライアントコンピュータのLinux統合ドライバとクラスタシステムの問題により、この問題が発生したようです。 2番目のCentOSシステムはそれほど幸運ではありませんでした。私は非クラスタ化Hyper-Vに行き、ドライバをブラックリストに追加しましたが、残念ながらまだLinux統合ドライバを削除しています。今、非常に大きな問題が発生しました。ドライバパッケージはrpmデータベースに表示されますが、その半分しか表示されません。
Q:rpmやyumを使わずにこれらのドライバを完全に削除する方法はありますか?今、どちらもドライバがありますが、私は不平を言って削除することはできません。 rpmとyum)はシステム全体を再びクラッシュさせます。これは最終的に完全に再構築される可能性がありますが、重要なサービスをホストしている間はできるだけ早く安定させる必要があります。
回答
さて、最後に問題になったCentOS VMが修正されました。破損したLinux統合ドライバを削除し、システムを安定させるために、次のことを行いました。
- CentOS Live CDをダウンロードし、欠陥のある仮想マシンから起動しました。
その後、新しいフォルダを作成しました。
$mkdir /mnt/OS
次に、障害のあるオペレーティングシステム(私の場合はsda2)のルートファイルシステムをマウントします。
$mount /dev/sda2 /mnt/OS
次に、ブートパーティション(私の場合はsda1)をマウントします。
$mount /dev/sda1 /mnt/OS/boot
次に、障害のあるOSにルートを移動します。
$chroot /mnt/OS
次にrpmアンインストールパッケージコマンドを実行します(プロセスからすべての重複エントリを削除したことを確認してください)。
$rpm -e --allmatches kmod-microsoft-hyper-v
このプロセスにはしばらく時間がかかりますが、完了するとVMを再起動でき、統合ドライバなしでシステムが起動して実行されますが、今は競合なしにパッケージを更新できます。
その後、Hyper-Vドライバが動作し安定していると確信するまで、Hyper-Vドライバを式から除外するつもりです。
答え1
カーネルでこのワークブロック検出機能が有効になっています。ほとんどの場合、これは実際にはブロックではないので大丈夫です。上記のコマンドを使用すると、この機能を無効にできます。
以前も同様の問題が発生しました。カーネルでdown_interruptable(semaphore)の代わりにdown(semaphore)を使用してセマフォを待つと、120秒以内にセマフォが起動しません。情報が印刷されます。実際に120秒以内にセマフォがオフにならないと大丈夫です。
このINFO以外のすべてが問題ない場合は、echo 0で無効にしてください。