Linuxのデスクトップとサーバーについて扱います。自宅のメイン機に発生した障害の原因がHDDの故障であることが判明し、RAID0アレイを解除することになりました。故障したHDDのSMART情報Ubuntu環境におけるHDDチェックLinuxでHDDのチェックを検索すると、出てくるのはfsckの使い方ばかりです。fsckはあくまでパーティション管理ツールであり、HDDそのものをセクタチェックしたい場合には役に立ちません。UbuntuにはHDDのチェック機能を持った「ディスクユーティリティ」が標準でインストールされています。「ディスクユーティリティ」にてHDD情報を表示したところ情報を見たいHDDの「SMARTデータ(A)」をクリックすると、別ウィンドウが立ち上がり、HDDのSMART情報を閲覧することができます。このウィンドウからディスク状態を知ることができ、チェックディスク(実態はよくわかりませんが)を実行することもできます。(「SMARTデータ(A)」から「セルフテストを実行(S)」の「詳細(およそ数十分)(E)」を実行する。コマンドを駆使することになるかと思います。メイン機に発生した障害は、コンパイル中にマシンがパニックするというもので、最初はCPUを疑っていました。ところが、ディスクユーティリティを見るとHDDのうちの一台が大きなエラー値を示しており、チェックディスクをかけたところ、席を立った短い間にUbuntuが再起動していました。犯人決定で良いと思います。RAID0アレイを解除するRAIDアレイの特定RAIDシステムには、LinuxのmdadmによるソフトウェアRAIDを使用しています。これからそのRAID0アレイを解除していきます。対象のRAIDアレイを特定します。私のマシンにはRAID0アレイとRAID1アレイが存在しているため、消すアレイを間違えると大変なことになります。お約束的なコマンドで、RAIDアレイの存在を確認。UUID=yyyyyyyy:yyyyyyyy:yyyyyyyy:yyyyyyyyこちらのコマンドにてアレイのRAIDレベルを確認します。[UU]詳細を確認します。/dev/sdd2以上の出力を勘案すると、目的のRAID0アレイは/dev/md/1のようです。2となっておりました。LVMがRAIDアレイの上に存在するようです。今回は論理ボリュームの母体であるRAID0を解体することが決定しているので、LVMはRAIDアレイごと消滅させてしまうことにしました。マウントの解除まずはRAIDアレイ上のファイルシステムのマウントを解除します。/dev/vg_raid0/lv_raid0RAIDアレイを停止させようとすると、以下のメッセージが表示されます。group?どうやらLVMを停止させる必要があるようです。/dev/vg_raid0/lv_raid0今度こそRAIDアレイを停止させます。/dev/sd[afd]2mdadmソフトウェアRAIDのメタデータを削除します。RAIDアレイに関する情報が記述されています。これをメタデータと呼びます。LinuxのディスクユーティリティはRAIDアレイを不用意に削除しないよう、RAIDメタデータを検出したディスクの初期化を受け付けません。/etc/fstabvimが使えないならvimの箇所をgeditに置き換えます。感想:心臓に悪いので、次からはRAID1アレイを物理的に外してから作業しようと思います。念のためUbuntuを再起動して、RAIDアレイの消滅を確認しておきます。編集が間違っていない確認も兼ねています。<none>問題なく消えているようです。スーパーブロックのメタデータが削除されたことを確認したければ、partedコマンドなどでパーティションテーブルを書きこんでみればよいかと思います。RAID0アレイの構築ここから先はおまけです。Rate"の値(「0でなければ異常値」と説明に書いてある)ところでこの値のどこが"Good"なのか、誰か教えてください。(注:SMART値の取得は各HDDメーカおよび製品によって異なります。型番レベルで命令が異なる場合すらあるそうです。いった事情もあり、SMARTの値は必ずしも信用できるものではありません。様のところでたまに記事になっています。)まず、ディスクユティリティにて、対象のHDDのブロックデバイスをパスで把握します。blkid接続されているブロックデバイス上のパーティションの一覧を表示する。パーティションの作られていないHDDを表示できないなど、これひとつでは情報が足りないが、雑かつ大まかに全体を捉えるのにちょうど良い。partedprintにて、ハードディスク情報の概要とパーティション構成を把握することができる。/dev/disk/by-idHDDのシリアルナンバーを取得する。物理的なHDDの挿抜作業をするにあたってHDDを識別するために必須のコマンドです。RAID環境では物理的なHDDの識別ミスがありがちです。同種HDDの一括購入により、故障時に取り外すべきHDDを識別する必要がありますが、ブロックデバイス名が印字されているわけではないので、困難を極めます。(ちなみに私は、HDDの先頭領域に小さなパーティションを作って、そのUUIDをHDDに印字しておく、という方法を取っていました。念のため、事前に「SMARTデータ(A)」から「セルフテスト(C)」の「詳細なチェック」をかけておきましょう。まとめてRAID0アレイを構築します。新しいRAIDアレイのためにデバイスノードを作成し、そこへmdadmコマンドで2つのブロックデバイスを集約します。私はHDD上にパーティションを切って、パーティションをRAIDアレイのメンバにするようにしていますが、HDD上のすべての領域をRAIDアレイにしてしまうのならば、パーティションを切らずに直接ブロックデバイスを指定しても構いません。started.RAID0アレイが構築できていることを確認します。<none>確かにRAID0アレイが出来ているようです。RAID0アレイを利用するために、ext4ファイルシステムを作成してマウントします。存在しているはずです。/raid0_arraylost+foundファイルを書きこんでみます。chownでRAIDアレイ上のディレクトリの所有者を自分に変更します。その後、touchコマンドで空のファイルを作成します。できていることを確認できれば成功です。test起動時に自動マウントするように、RAID0アレイ上のファイルシステムを/etc/fstabに登録します。後で確認するために、まずは手動でマウントしたファイルシステムをアンマウントします。~/raid0_array次に、blkidにてRAID0アレイに作成したファイルシステムのUUIDを調べます。TYPE="ext4"わかったUUIDを下に、自動マウントの設定を以下のように記述します。2以下のコマンドにて、/etc/fstabに設定されたマウント処理を行います。-aマウント先のディレクトリ上に、アンマウント前と同じファイルが存在していれば、自動マウントの設定は成功です。test念のためOSを再起動して確認しましょう。以上で、mdadmによるRAID0アレイを構築して使用することができるようになります。mini2を試験導入していてすごく便利で体感が良かったです。nijiflowをベースに、機械学習で艦これとアズールレーンの画像の分類器を作り、学習済みグラフ等を公開した。これのTwitterBotを作成し公開している。データセットはPixivのタグ付け済み画像情報を元に作成した。Web上にあまり開封写真等の詳細がなかったので残しておきます。モノが大きいためか、知らない運送会社でおくられてきた。...JavaScriptで、変数を使った正規表現マッチング例および失敗例は、自作のJavaScriptソースから抜粋。※例ごとにマッチする文字列が違いますがご容赦ください。