そこで、なるべく断片化させること無くHDDへ情報を保存させる方法は無いものでしょうか?
宜しくお願い致します。
Aについて
Perlで実現する場合は、fileをopenしてread/writeすることになります。
初回ファイル作成はHDDフォーマット直後 or HDDデフラグ直後にダミーデータを書きこんでおきます。
本物のデータを書く際は、断片化を防ぐためファイルサイズを増減させないよう書き換えます。
サンプルコード
ランダムアクセスを使って読み書きする - Perl入門~サンプルコードによるPerl入門~ -
http://d.hatena.ne.jp/perlcodesample/20080810/1218332357
Bについて
元記事には「ファイルの断片化を最大85%、*未然*に防ぐ機能」「ほかの作業に影響を与えることなく
デフラグ処理を行う。 」とあるので、おそらくダウンタイムにはならないと自分は解釈しました。
元記事だけではこれ以上は分からないので、詳しく知りたい場合はこのソフトの販売元に問い合わせる
と良いと思います。
Cについて
データ保存用ドライブではファイルを追加だけにして削除/サイズ増減をしなければ、
理論上は断片化を防げると思います。
複数プロセスでデータ保存用ドライブへのファイル書き込みすると断片化が発生し
うるので、書き込みは1プロセスだけに限定した方がいいですね。
実装例:外部から受け取ったデータは一旦作業用ドライブに格納しておきデータ保存用ドライブ
への転記は1ファイルずつにする。
回答いただきありがとうございます。
面白いアイディアですが、物理的には1つのファイルですが、
VirtualPCの様な仮想HDを作った場合、その仮想HDの中が断片化してしまいそうですがどうでしょうかね?
結局は、断片化によるHDDの速度低下や壊れやすさの低減には役に立たないような気がします。
3つ方法をあげます。
A. あらかじめファイルを用意する
あらかじめ大きめのファイルを用意しておき、後から上書きすれば断片化を防げます。
B. ファイルの断片化を防ぐユーティリティを使う
相栄電器、ファイルの断片化を防止するデフラグソフト「Diskeeper 2010」 - http://www.asahi.com/digital/bcnnews/BCN200911190014.html
ファイルの断片化を最大85%、未然に防ぐ機能「IntelliWrite(インテリライト)」を搭載。
C. 頻繁に書き換えるドライブと保存するドライブを分ける。
ファイル断片化を未然に防ぐ - http://www6.airnet.ne.jp/~shiyou/cgi-bin/weblog/logwing.cgi?comm...
回答いただきありがとうございます。
Aについて、これは、Perlでも有効でしょうか?もし分かりましたらコードとともに教えていただけると助かります。
Bについては、ダウンタイムの発生はあまり好ましくありませんので難しいです。
Cについては、すでに、HDD1台丸ごと、データ保存用にしています。
Aについて
Perlで実現する場合は、fileをopenしてread/writeすることになります。
初回ファイル作成はHDDフォーマット直後 or HDDデフラグ直後にダミーデータを書きこんでおきます。
本物のデータを書く際は、断片化を防ぐためファイルサイズを増減させないよう書き換えます。
サンプルコード
ランダムアクセスを使って読み書きする - Perl入門~サンプルコードによるPerl入門~ -
http://d.hatena.ne.jp/perlcodesample/20080810/1218332357
Bについて
元記事には「ファイルの断片化を最大85%、*未然*に防ぐ機能」「ほかの作業に影響を与えることなく
デフラグ処理を行う。 」とあるので、おそらくダウンタイムにはならないと自分は解釈しました。
元記事だけではこれ以上は分からないので、詳しく知りたい場合はこのソフトの販売元に問い合わせる
と良いと思います。
Cについて
データ保存用ドライブではファイルを追加だけにして削除/サイズ増減をしなければ、
理論上は断片化を防げると思います。
複数プロセスでデータ保存用ドライブへのファイル書き込みすると断片化が発生し
うるので、書き込みは1プロセスだけに限定した方がいいですね。
実装例:外部から受け取ったデータは一旦作業用ドライブに格納しておきデータ保存用ドライブ
への転記は1ファイルずつにする。
回答いただきありがとうございます。
A.ちょっと今回の私の用途ではそのまま使えない気もしますが、とても興味深いコードでした。
B.できれば、これ以上外部のソフトを入れたくないため、こちらについてはどうしても必要になった時、本格的に調べてみようと思います。
C.この方法はなかなか良いかもしれません。ただ、欲を言えば、今あるPerlコードを少しだけ書き換える程度できればと思っていましたので、なかなか興味深くはあるのですが残念なところですが、新しく作るプログラムについてはこの方法を採用するのもありですね!
回答いただきありがとうございます。
A.ちょっと今回の私の用途ではそのまま使えない気もしますが、とても興味深いコードでした。
B.できれば、これ以上外部のソフトを入れたくないため、こちらについてはどうしても必要になった時、本格的に調べてみようと思います。
C.この方法はなかなか良いかもしれません。ただ、欲を言えば、今あるPerlコードを少しだけ書き換える程度できればと思っていましたので、なかなか興味深くはあるのですが残念なところですが、新しく作るプログラムについてはこの方法を採用するのもありですね!