Linux、ローカルWebサーバー、およびPostgreSQLがインストールされたコンシューマターミナルのグループがあります。問題のあるマシンのフィールドレポートを取得していますが、調査の結果、停電が発生したようで、ディスクに何か問題があるようです。
私は、問題は単にデータベースが破損すること、または最近の変更を含むファイルがスクランブルされることであると考えていましたが、他の奇妙な報告があります。
- 間違った許可を持つファイル
- ディレクトリになったファイル(たとえば、
index.php
現在はディレクトリ) - ファイルになったディレクトリ
- スクランブルされたデータを含むファイル
データベースが破損する問題がありますが、それは私が期待できることです。私がもっと驚いたのは、より基本的なファイルシステムの問題です。たとえば、アクセス許可やファイルをディレクトリに変更することです。問題は、最近変更されていないファイル(ソフトウェアコードや構成など)でも発生しています。
これはSSD破損の「正常」ですか?もともとは安価なSSDで起こっていると思っていましたが、有名ブランド(消費者グレード)で起こっています。
FWIW、クリーンブートではautofsckを実行していません(理由はわかりませんが、私は新しいです)。一部の場所にはUPSが設置されていますが、場合によっては適切に実行されないなどがあります。これは修正する必要がありますが、それでも端末の電源を落とすことができます。ファイルシステムはext4です。
質問:システムレベルで問題を軽減するためにできることはありますか?
ハードウェアキャッシュをオフにするか、同期モードでドライブをマウントすることに関する記事をいくつか見つけましたが、この場合に役立つかどうかはわかりません(メタデータの破損と最近の変更ではありません)。また、読み取り専用モードでのファイルシステムのマウントに関するリファレンスも読んでいます。書き込む必要があるため、これを行うことはできませんが、それが役立つ場合は、コードと構成用の読み取り専用パーティションを作成できます。
これはドライブの例ですsudo hdparm -i /dev/sda1
:
Model=KINGSTON RBU-SMS151S364GG, FwRev=S9FM02.5, SerialNo=<deleted>
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=125045424
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: Unspecified: ATA/ATAPI-3,4,5,6,7
WriteCache=enabled
。これは大きな問題です。データベースがあるハードドライブでは、書き込みキャッシュを有効にしないでください。HPなどの一部のベンダーは、まさにこの理由で実際にハードドライブの書き込みキャッシュを有効にしません。