京都大学で約77TB分のデータが消失するトラブル。原因は日本HPEのプログラム不具合 92
ストーリー by nagazou
いタタタ 部門より
いタタタ 部門より
昨年の末に京都大学のスーパーコンピューターに保存していたデータ約77TB分が消失するというトラブルが発生していたそうだ。京都大学のリリースによると、このトラブルは12月14日17時32分から12月16日12時43分にかけて発生。大容量ストレージの一部データを意図せず削除するトラブルが起きたという。消失したデータは約77TB分約3400万件におよび、一部は復元ができたもののそのうちの約28TB分については完全に消失してしまったとのこと(京都大学学術情報メディアセンター、ScanNetSecurity)。
日本ヒューレット・パッカード製のストレージをバックアップするプログラムの不具合が原因。同社がバックアッププログラムの機能改修時に適用手順に問題があったとしている。それにより本来は不要となった古いバックアップログファイルを削除する処理が、特定ディレクトリ配下のファイルを削除する誤動作を引き起こしたとしている。
nemui4 曰く、
日本ヒューレット・パッカード製のストレージをバックアップするプログラムの不具合が原因。同社がバックアッププログラムの機能改修時に適用手順に問題があったとしている。それにより本来は不要となった古いバックアップログファイルを削除する処理が、特定ディレクトリ配下のファイルを削除する誤動作を引き起こしたとしている。
nemui4 曰く、
なんかすごいね
処理に時間がかかるシェルスクリプトの実行中に、そのスクリプトを上書きしたところ処理の途中から上書きした方のスクリプトの方が途中から動きだしてしまい、整合性が取れてないために大事故になったらしい
しらんかった (スコア:5, 参考になる)
てっきり最初にスクリプト全部読み込んでから走らせてると思ってた。
京大での事故で広く知られたように、シェルは最初にスクリプト全体を読み込むのではなく、「1行ずつ順次読み込む。そしてスクリプト終端に達したり exit や致命的エラーなどによりスクリプトは終了する。
走らせているスクリプトを変更する機会は今までになかった。
期待どおりに動いていないのがわかったらkillしてから書き換えてるし。
それでも、本番で長時間走らせている時に不具合見つかったらやっちゃうのかな。
スクリプトを改変するときはバックアップ後に別名コピーしてテストして問題がなければ元の名前に上書きしてた。
小手先処理の簡単なスクリプトしか作らないので、バージョン管理とかその手のことはやってない現場仕事ですが。
ループがあっても小さいものだし、それくらいなら最初に全部読み込まれそう。
Re:しらんかった (スコア:5, 参考になる)
いろいろなパターンがあって難しい...
bash スクリプトの実行中上書き動作について
https://zenn.dev/mattn/articles/5af86b61004bdc [zenn.dev]
Re:しらんかった (スコア:1)
Windowsのbatファイルも同じ感じだよね。
↓みたいなの書いてpause中にファイル編集してみるとわかる。
echo 1
pause
echo 2
pause
echo 3
pause
echo 4
Re:しらんかった (スコア:1)
echo 1
pause
echo 2
pause
となっているとき、1回目の pause 時に1行目を「echo ABCDEFGHIJKLMNOPQRSTUVWXYZ」に書き換えたら、
「'KLMNOPQRSTUVWXYZ' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
ってエラーメッセージを出した。
なるほど、「pause(CR)(LF)」の次の位置を憶えていてそこから再開しようとするのか。
Re: (スコア:0)
覚え違えかもだけど、すごい昔の日本語DOSか、MS-DOSか、PC-DOSかCP/Mだかはメモリに読み込んでた記憶があるような。
BATが入ったフロッピーディスクを途中で入れ替えする事が有るからメモリにある程度バッファリングしてたのかな。
現在のBATは実行中に書き換えると、上記のようにファイルポインタ位置でずれて意図しない現象が起きるので危険です。
Re: (スコア:0)
1driveマシンもあったので、FDD入れ替えはありましたね
Re: (スコア:0)
昔のMS-DOSというと
COPY *.TXT HOGE.TXT
でファイル破壊する仕様があったような……。
HOGE.TXTがあると上書きを始めちゃうから、ワイルドカードの展開でHOGE.TXTの番になったところで
MS-DOSができないことを検出してエラーで止めるものの、その時点でHOGE.TXTの中身は破壊されているという
今は「一時ファイルを作って最後にHOGE.TXTに上書きする」みたいな処理にして回避してそう
Re: (スコア:0)
MS-DOSすっかり忘れた
cat *.TXT >> HOGE.TXT
でよさげ
Re:しらんかった (スコア:2)
MS-DOSでテキストを表示するのはcatではなく TYPE コマンドですよ。
さらに、COMMAND.COM のTYPEコマンドはワイルドカードに対応してないので、 TYPE *.TXT はできません
Re:しらんかった (スコア:1)
PowershellでHOGE.TXTがある状態で
を実行すると、無限ループになってHOGE.TXTが際限なく大きくなる。
期待通りの動作であって、これをバグとは言わないと思う。
ちなみに、
だと、ワイルドカード展開の順番でHOGE.TXTが来た時にエラーになる。
HOGE.TXTの内容は、HOGE.TXTが最初に展開されれば変更されないし、そうでなければ、その直前に展開されたファイルの中身と同じになる。
これも期待通りの動作。
MS-DOSだと何か違う動作になったのかな?
Re: (スコア:0)
それはそもそもどんな動作を期待して実行するコマンドなんだ……
コピー先見て勝手にコピー順を変えたり一時ファイル生成されるのも迷惑だし、
逐次実行してってエラー出たら止まりってのは至極普通の動作だろ。
君はエラー時にロールバック(操作前の状態を維持)してほしいかもしれんけど
出来たところまででも結果がほしい、エラー時の状態を知りたいってパターンもある。
シェルに概ねお任せするGUIならともかく、
コマンドなら愚直に実行してくれたほうが有り難いと思う。
気配りしたいなら自分でそういうコマンド列ないしはバッチ書いて好きに制御すべし。
# その意味ではファイル名等のエスケープ関連こそ批難すべき挙動だと思う。
Re: (スコア:0)
当時のやつは、CONFIG.SYSのBUFFERSの設定によると思います。
BUFFERSにそれなりの大きな値を設定してたらフロッピー上のバッチファイルも一度に読み込みますが、BUFFERS=1とかだとカッチンカッチンと…。
Re: (スコア:0)
上書きじゃなくてmvしよう。
Re:しらんかった (スコア:1)
はい、仰せの通りに mv しています
Re:しらんかった (スコア:1)
Re:しらんかった (スコア:1)
スクリプト書き換えるときは同じdirectoryでやるからファイルシステムマタギは安全そう。
Re: (スコア:0)
自明かと思って注意しなかった。
renameシステムコールを使おう、ならあってる?
あとはemacs使えとか。
vimはどうかな?
Re:しらんかった (スコア:1)
こうレベルの話だと、「emacsやvimで本番環境のファイルを直接編集する」時点でアウトじゃないですかね。
「あらかじめテスト環境で動作確認を取ってから、本番環境に上げる」ようにしないと。
となると、ファイル更新に使うツールはscpとかrsyncとかだけど、
自分がやるなら、「別ディレクトリにアップしておいてから、rename(mv)」かな。
実行中書き換えの問題がなくても、
「ファイルコピー中の、中途半端な状態のファイルで実行してしまう」リスクが怖いので、
ファイルを用意してからatomicに切り替えるようにすべき。
Re: (スコア:0)
これを故意に使ったのが自己書き換えプログラムなのでは。
自分では使ったことないけど。
Re: (スコア:0)
広義にはそう言えるかもしれないけど、こういうのはタレコミのソースにもあるように「自己追記」とでも呼ぶべきものであって「自己書き換え」とは言わないすね
Re:しらんかった (スコア:1)
UNIX系のファイルシステムなら、ロックしててもmvでファイル入れ替え可能です。
inodeでファイルの実体を管理しているので、
名前を変えたり削除しても、ファイル名からの参照ができなくなるだけで実体は残っており、
すでにオープンしているファイルハンドルからはそのまま元ファイルにアクセスし続けられます。
ファイルハンドルを保持せず、都度オープンするような実装だと新ファイルにアクセスすることになりますが、
その場合は「mvコマンドで安全にファイルを入れ替えて」もアウト。
バッチファイルはそういう挙動だったかと思います。
もうない (スコア:2)
本当にもうないのだろうか?
暗号化していたら絶望的だが、HDDだろうから、それなりの業者に頼めばもう少し復元できそうな気もするけど、コストに見合わないかな。スパコンなら元のコードは大抵手元にあるだろうけど。
Re:もうない (スコア:1)
コードなら使用者の手元にありそうですけど、スパコンの計算結果とかが消えてたらどこが困るんでしょう…学術や公共用途の利用だけだとしたら被害額どう計算するのかか
Re:もうない (スコア:1)
卒論完成間近の学生、早く成果を出さなきゃいけないポスドク、その給料を払っていたPI。そして、多くの研究費の原資は税金だから、納税者。
Re: (スコア:0)
データが飛んだので、卒論OKください!
Re:もうない (スコア:1)
実は成果がでてなくて困った学生がHPEの中の人と内通して(いやなんでもないです)
Re:もうない (スコア:2)
大学のキャンパス丸ごと停電になったことならありますね。
卒論/修論に行き詰まった学生が犯人だと噂されました。
(停電は事実。犯人・動機は不明)
詳しくは「大阪大学 釘 停電」でググれ…と思ったら、意外とネットに情報ないですね。
fj.jokesの記事 [suplex.gr.jp]が一番詳しかった
Re: (スコア:0)
計算結果が消えたせいで卒論できなくて内定取り消されたら生涯賃金1年分の補償とかになるんじゃないですかね
Re: (スコア:0)
昇給にも関わってくるから一年分きっかりじゃすまないけどな。
奨学金使ってたら、奨学金が留年を認めてくれるとも思えないから退学せざるを得なくなったりして……
人生設計が瓦解した学生がいないことを祈る。
Re: (スコア:0)
HPEが責任とって雇うしかない
…まさかそれが狙いか!
Re:もうない (スコア:1)
当該ストレージをすべて停止できるのなら、削除データの復旧は可能かも知れない。
しかし、この手のシステムでそんなことやると、関連している複数の研究がすべて止まっちゃう。
それはできない、ってことだったんじゃないかな。
影響を受けた77TBの内、バックアップデータからの復旧ができなかったのは、28TByte・2500万ファイル、内不急不要のものを除く深刻な被害は8TByte・350万ファイル。
他のすべての研究を止めて、その8TByte・350万ファイルを救いに行くのかどうか、って話になるね。
Re: (スコア:0)
一部(約49TB)分は復元できたってことだから、それなりの業者に頼んだ結果がこれなんじゃないですかね
Re: もうない (スコア:1)
違うでしょ。全体が77TBで、
バックアップが存在しないことで復旧できないファイルは,容量約28TByte,約2500万ファイルでした.
と言ってるんだから、77-28=48TB分はバックアップ(データ)から復旧した、と言う事ですね。「それなりの業者」とは無関係。
「一部(約49TB)」とは1TB程差がありますけど、その分は「それなりの業者」の頑張りだったのかもしれません。
が、その49って数字はどこから持ってきました?
Re: Re: もうない (スコア:1)
> 77-28=48TB分
???
Re: Re: もうない (スコア:1)
まちがった。77-28=49TBが正しい。
どうして (スコア:1)
将来的にはこれまでのミラーリングによるバックアップだけでなく
なんて実装にしちゃうんですかね…。ランサムウェア攻撃なんて受けた日には全滅でしょうに…。
Re:どうして (スコア:1)
そうですね。
バックアップは2世代以上は保持しとくのが普通だと思います。
でなければ、1回バックアップに失敗しただけで、復旧不能になる可能性が有るわけだし。
しかもシェルスクリプトでコピー(rsync?)でバックアップとか、そんな貧乏くさいことを…
お金が無かったんですかね。
Re: (スコア:0)
ウチはミラーリングを「データのバックアップ」と称したら叱られます。
Re:どうして (スコア:1)
ここで言う「ミラーリング」と言うのは、RAID1的なものでは無く、D2Dなコピーの事じゃないかと思う。
それでも「データのバックアップ」と称したら叱られますか?
Re:どうして (スコア:1)
結局バックアップセットをいくつ持つか、数で勝負するしかない。当然コストがからむから簡単ではないが。
バックアップ世代(バックアップセット)数を2以上にせよ、というのは同意です。が、そこは問題にしていません。
バックアップ世代数が1であっても、D2Dなコピーをバックアップと呼ぶのが間違いなのか、という話をしています。
Re:どうして (スコア:1)
RAID1とD2Dは同列ではありません。最初からそう言っています。
同列でないので、バックアップと呼べるか否かも違うだろう、という話をしています。
で、キミは今回の件はRAID1だと思ってるの? それともD2Dだと思ってるの?
で、それはバックアップと呼べるの? 呼べないの? 加えてその理由は?
キミからまともな答が返ってくるとは到底思えませんが、一応尋ねておきます。
Re: (スコア:0)
28TBが完全に消失とあったので世代バックアップを復元したらいいんじゃないかと思ったらやってないんですね。
世代バックアップと遠隔地バックアップは当たり前と思っていましたがやってないのか。
卒論は元データも含めて週次オフラインバックアップ必須 (スコア:1)
卒論の提出が近づいてきた時期に、PCトラブルでデータ飛んだり、操作ミスでデータ飛んだりするんだよな
卒論にそなえて、ちゃんと週次バックアップしておきましょう
sotsuron-20220107.zip
みたいに、関連データ丸ごと毎週バックアップして、別のPCに保存&オフラインでも保存が基本
年末に笑えないニュースでしたね (スコア:0)
HPとみずぽの中の人は、おめでたくない正月だっただろうな。
Re:年末に笑えないニュースでしたね (スコア:2, すばらしい洞察)
みずほの中の人は大して気にしてないんじゃね?
気にするメンタルがあれば改善してるだろ、もう。
だからWindowsはbashを標準搭載しない (スコア:0)
やっぱりPowerShellだよな
Re: (スコア:0)
WSL「せやせや」docker「ま、まあそうだなうん」
Re: (スコア:0)
それでもやっぱりスパコンでWindows使いたくないな。
Re: (スコア:0)
このスパコンって普通にLinuxじゃねーの?
そのままPowerShell入れれば良いだけだろ
バックアップ作業中にやられた (スコア:0)
全然規模が違うけど、今まさにバックアップ作業中に障害が起きてWindowsが再起動を繰り返している。
最初のうちは再起動メニューが出ていて最新のシステム更新をキャンセルするかとか、いついつのポイントを復元するかとか選択できたけど、どれもできませんでしたとか言われる。
今や延々再起動を繰り返すようになっちゃった。助けて