ウイルス対策ソフトをご利用の場合、「トロイの木馬」を誤検出する記事があります。警告が出た際は、こちらの記事をごらんの上、お知らせいただければ幸いです。

« それは世間によくある誤解。iPod shuffle編。 | トップページ | マウスがまともに動かないときに見るべきポイント。 »

2009年4月12日 (日)

それは世間によくある誤解。SSDのプチフリーズ・デフラグ編。

このエントリーをはてなブックマークに追加 このエントリーを含むはてなブックマーク この記事をクリップ! BuzzurlにブックマークBuzzurlにブックマーク

この日は町内会の総会があり、仕事は入れられませんでした。
町内会の役員って、ボランティアで面倒なだけで、何の権限もありませんけど、自分自身の住んでいる町を良くしようと思えば、積極的に関わっていくべきものなんですよね。
まぁいろいろ面倒なのは確かなんですけど…。
皆さんも、役員として関わるところまでいかなくても、協力はして差し上げてくださいね。
ゴミ出し場なんかの面倒を見るのも、基本的には自治会活動なんですから…。

それはさておき。

このブログでも、ちょっと前にかなりのアクセス数を稼いだ

2009年3月13日 (金) 結論:SSDだからこそデフラグは要ります。でも条件付。

この記事。
はてなブックマークやらリンクによる言及などで散々コメントされたのは、

  • SSDって半導体素子だからデフラグなんかしてもしなくても関係ない
  • これはMLCだから SLCは関係ない
  • JMICRONのコントローラーだからそれ以外は関係ない
  • コントローラーがキャッシュを積めば解決
  • HDDとクラスタサイズがずれてるだけ
というコメント。

…うーん。違うんですよね。観点が。

要は、

SSDを「ATAインターフェースに差し替えで使わなければならない」という固定概念から脱却できていない

だけのこと。
加えて言えば、

本来はハードディスクドライブと同じ形である必要もないのです。

この目先の概念から抜け出せないと、トンチンカンな議論になってしまうのです。

-----

フラッシュメモリには1素子あたりの書き込み回数の寿命が明確にあるため、SSDコントローラーは、データ消去・書き込みには、事実上書き込み制限回数のないHDDとは違って「ウェアレベリング」と呼ばれる独自の書き込み管理を行っており、全てのフラッシュメモリ素子を使ってまんべんなく書き込み回数を分散させるようにしています。
つまり、

常に意図的に断片化を起こし続けているのがウェアレベリング

です。
これはSSDがフラッシュメモリであるがゆえに、絶対に外せないものです。
正しくウェアレベリングがなされれば、1素子の書き換え寿命が3000回でも、たとえば64GBのドライブなら、単純計算で毎日64GBの書き込みをしても7~8年はもつ計算となります。
容量が大きくなればなるほど、寿命は延びる計算となります。しょっちゅうデフラグしても、パソコンの製品寿命よりもつ計算になります。

しかし、ATAインターフェースでつながっている以上は、「HDDとして振舞う」必要があるため、ウェアレベリングによる断片化の管理とは全く別に、

OSから見たファイルレベルの断片化を管理・再現する必要がある

という

強烈な無駄を強いられる

のです。
それは高速化・大容量化により、さらに顕著になります。

本来はそんなことまで再現するのは無駄以外の何物でもないのに、激しい断片化の発生状況まで「HDDと同じ振る舞いをする」ようにしているので、パフォーマンスにかなりの無駄が出ている、と一連の記事で書いているつもりです。

1TB分の断片化の管理なんて、どれほどのキャッシュがあれば目立たなくできるものでしょうか?

断片化の解消によるSSDのパフォーマンスの回復は、OSへ「断片化と見せかけることによる無駄」が少しでも減るからだという、いたってシンプルな理屈です。
実際にはそれだけではなく、見せかけている断片化状況とは別に、ウェアレベリングによりフラッシュメモリ上の断片化状況が常に変わっていくため、いろんな要因が絡んできてそこまでシンプルなわけではないと考えてます。
キャッシュを積んだところで、大容量化・高速化により、今度はキャッシュ容量の問題が発生するのは目に見えています。

そういう無駄のために、やれ「JMICRONのコントローラーがヘボだからだ」、やれ「キャッシュ搭載すれば全て問題は解決」、果ては「RAID0で行こう!」

…観点がおかしいと思いませんか?

-----

これからは、HDDからSSDへとシフトしていくのは間違いないと思われますので、私は、

現行のSATA以上の高速インターフェースを用意し、SSDに特化したファイルシステムをOSがサポートするべきだ

と思っています。
読み出しに関しては、誰もが言っている通りで、

「SSDはHDDに比べて【読み出しにおいて】断片化の影響なんてほとんどない」のはまぎれもない事実

です。それを否定しているわけでは決してなく、むしろ大前提です。
でも、【書き込みにおいて】は、ウェアレベリングの影響を強烈に受けるということを忘れてはならないのです。

だからこそ、書き込みに関しては、

  • OSは書き込みっぱなしで(ウェアレベリングを含めた)データ保管場所の管理はSSDコントローラーにおまかせにする
  • わざわざ「ファイルや空きエリアが断片化している」ように見せかける必要などないファイルシステムにする
こうすれば、HDDとは比べ物にならないSSDのポテンシャルを最大限に発揮できるはずで、それこそコントローラー性能に依存してくるわけです。

こうなると、

ケーブルによる伝送ロスすら馬鹿にならなくなる

ので、従来のHDDのように、四角い頑丈なアルミ合金の箱に入ったユニットである必要すら全くなくなるため、

転送速度はHDDの20倍、今までの常識を覆す速度のSSDが登場へ :GIGAZINE

こういう感じで、SATAよりもさらに速いインターフェースを使うのが正しい将来像であるといえます。

ということで、HDDとは記録管理手法が全く違うSSDについては、

「わざわざHDDとして見せかけ、著しい断片化までくそ真面目に効率よく再現する」ためのコントローラー性能をどうこう言うのは、根本的な部分を見落としたトンチンカンな議論以外の何物でもない

と考えています。
そういう観点で、私は、

「今のSSDは単なるキワモノであり、マニアのオモチャだ」

と論じています。

現に、明石・神戸あたりでは、SSDは、リテール品・バルク品のHDDと並んで売られていることがあまりなく、店によっては店頭に並んですらない状況。
こんな片田舎の状況が全国に当てはまるとは思えませんが、自作ショップですら、あまり積極的に並べていない様子が見られるのは、やはり製品としてはまだまだ様子見状態なのだろうと思われます。

まぁ、何度も書いてますが、起動ドライブではなく「読み出しメイン」のデータドライブであれば、断片化の影響もほとんどなく、結構いい線行くんですけどね。
たとえ起動ドライブでも、ROM-WINのように、起動ドライブへの書き込みを一切やらないものであれば、SSDは今のままでも目立って性能を発揮できますが、それはそれ。

マニアのお遊びとして使う分には、とっても魅力的なデバイスではあるんですけどね。

今のWindowsと現行の(HDD前提の)ファイルシステムとの組み合わせで起動ドライブに使っていては、SSDは「狼なのに牙もむけず、羊の皮をかぶっていなければならない」という状態です。実に哀れです。

…まぁ結論は前記事と同じなんですけどね。

ちなみに、人気blogランキング参加中です。 よろしくお願いします。

このエントリーをはてなブックマークに追加 このエントリーを含むはてなブックマーク この記事をクリップ! BuzzurlにブックマークBuzzurlにブックマーク

2009年04月12日(日) 定番トラブル, ソフトウェア不具合関連, ハードウェア不具合関連(ハードディスク), パソコントラブル, パソコン・インターネット, 企業(メーカー・プロバイダ等)の姿勢, 日記・コラム・つぶやき, 起動しない・起動が遅い |

« それは世間によくある誤解。iPod shuffle編。 | トップページ | マウスがまともに動かないときに見るべきポイント。 »

定番トラブル」カテゴリの記事

ソフトウェア不具合関連」カテゴリの記事

ハードウェア不具合関連(ハードディスク)」カテゴリの記事

パソコントラブル」カテゴリの記事

パソコン・インターネット」カテゴリの記事

企業(メーカー・プロバイダ等)の姿勢」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

起動しない・起動が遅い」カテゴリの記事

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/13757/44697588/void
↑トラックバックをいただく際は、最後の「/void」を抜いてください。お手数ですがよろしくお願いいたします。

※あまりにも無関係なトラックバックが多いため、当面はトラックバックの公開は承認制にしました。トラックバックを送っていただいてもすぐには反映されません。ご了承願います。

※トラックバックをいただく際は、この記事のURLを記事中に記載(もしくはリンク挿入)願います。
この記事と無関係な内容であったり、明らかな宣伝もしくは宣伝活動目的と判断されるもの、トラックバック元がトップページへのリンクであるもの、もしくは当方が不適切と判断されたものは、公開の承認はなされません。あらかじめご了承願います。

この記事へのトラックバック一覧です: それは世間によくある誤解。SSDのプチフリーズ・デフラグ編。:

コメント

exFATや、PCIExに接続するSSDも存在します。
またSSDの利点は耐衝撃性や省電力という点もあります。
残念ながら、この記事はきわめて狭い見識から述べられている意見かと思われてしまいます。

投稿: 驕り | 2009/04/17 23:33:37

お疲れ様です。
SSDの、基礎から、仮想ながら推奨使用方法まで、とても詳しくわかりやすかったです。

そこで現状の周辺環境を考慮すると、WindowsはHDDで使うのがbetter、或いは書き込み禁止にできるフラッシュデバイスに置くという使い方がいいんでしょうかね。

一方で個人的には、CD起動が出来る「LINUX」や「Knoppix」などをCFカード等へ、以後のデータ保存にSSDを使うといった感じでもいいのかな、と思いました。
でもやっぱり、Knoppix等は一般の方たちが使える優しい代物ではない、むしろキワモノですねw

いずれにしても、現行のHDDと比較すると値段に圧倒的な開きがあるので、まだ容易に手を出す気になれません(笑)
( -`ω´-)ン- 電球(\100)を電球型蛍光灯(\1580)へ移行する感じでしょうか(多分全然違うでしょうけどw)
電球ほど簡単な代物ではありませんが、これからメーカー製のパソコンにも載ってくるとなると、寿命や安定性も考慮しつつ、コストも頑張った物に登場していただきたいものです。

長文、失礼いたしました。

投稿: kei | 2009/04/17 23:52:57

お疲れ様です。
とても勉強になります。
自分がいかに勉強不足かわかりましたw

今後ともアップお願いします。

投稿: とっつぁん | 2009/04/18 0:09:22

リナックス系統にはデフラグの概念が無いって聞きました。
これがほんとだとするとMS-DOS以降で使われているファイルシステムって何なんだろうなぁと。

昨年windowsXPSP3をインストールする際OSごときれいにしましたが
デフラグを一度もしていなかったのでやってみたら・・・・
とんでもない状況になっていました・・

投稿: | 2009/04/18 3:16:37

>PCIExに接続するSSDも存在します。

本文読んでるのかな? PCI-EXに接続してSSDを使うなんて
「マニア」だけだろ

>SSDの利点は耐衝撃性や省電力という点もあります。

この程度の利点で1GB当たりのコストがはるかに高いSSDを使うのは
それこそ「マニア」だけ

投稿: 空 | 2009/04/18 5:44:26

驕り さん
>SSDの利点は耐衝撃性や省電力という点もあります。

それはおっしゃるとおりです。
でも、デスクトップではほぼ意味ないですし、いずれすぐテラバイト単位になりますから、耐衝撃性はいいとして、将来にわたっても省電力かどうかは…。

>exFATや、PCIExに接続するSSDも存在します。


exFATって…リムーバブルディスクの容量対策以外のメリットってあります?
少なくとも、「ウェアレベリングを考慮してSSDに特化したファイルシステム」とは言えませんよね?

それに、リンクでではありますが「PCIExに接続するSSD」の具体例を出して、それが将来的な姿、と書いてますけど、読んでいただけてますでしょうか?

kei さん
>WindowsはHDDで使うのがbetter

現状では仕方なく、というところでしょう。
「強烈な無駄」を内包しているのに、単純にHDDとのケーブルレベルの差し替えでの性能がどうのこうの言うのは、あくまで趣味の範囲ですから。
ネットブック等で耐衝撃性などのメリットはあっても、低価格路線でプチフリーズ頻発では、「まだまだ」という印象はぬぐえません。

ただ、プチフリーズの究極の原因は、起動ドライブに細かいファイル書き込みを繰り返すようにしているWindowsの仕様にあると言えますので、仕様として、一時ファイルはRAMドライブにするなどの対策をやってほしいと思ってます。
ただ、イベントビューアなどのログに関しては、揮発するRAMドライブでは意味がなく、どこかに必ず残さないと、トラブルの原因究明ができなくなるので、それを残すための別ドライブを…としてるとそれこそマニア仕様になりかねませんが(汗)。

結局は当面コスト面で仕方なく、ということになってしまいますね。
ただ、機械モノではなく半導体のものですので、かなりの進化スピードがありますから、コスト面の解決もすぐじゃないかとも考えてます。

とっつぁん さん
世間一般には、読み出し性能のことばかり触れられており、こういうところをきちんと書いている文献って、本当に少ないです。
まぁ、SSD人気をあおっておかないと、スポンサーから切られかねないんでしょうけどね。
今週買った週刊アスキー(2009/4/28[No.733])の記事なんかひどいですね。
「いまさら聞けないSSD」とかのタイトル。
高価なモデルばかり紹介しており、プチフリの話もまるで「過去のもの」とでも言わんばかり。
マイナスイメージ払拭のため、みたいな感じです。

谷 さん
>リナックス系統にはデフラグの概念が無いって聞きました。

うーん、NTFSも、出始めはそんな話があったような…。結局断片化が問題となってますが。
実際、細かいファイルと巨大なファイルが混在すれば、必ず断片化は起こるはず。
「ファイルの断片化を起こさない」ということはできても、それでは空き領域の断片化が激しくなります。
なので、ちょっと確認が必要ですね。

空 さん
>PCI-EXに接続してSSDを使うなんて「マニア」だけだろ

うーん、本文中のリンクででも紹介しましたが、今は高すぎてそうかもしれませんが、いずれHDDとの転送速度の差が顕著になると、PCI Express接続をも上回るインターフェースが用意される可能性もないではないです。
それも意外と早くに…。

>この程度の利点で

私は持ち歩きのメンテ用PCをSSDに換装しました。
プチフリーズの懸念はあっても、耐衝撃性をたった8000円のドライブで得られて安い買い物だと思ってます。
まぁ、自称「プチフリーズを起こしにくい」というSSDは、正直かなり割高です。そういう意味では「この程度で」と言えなくもないですね。

投稿: ささもと | 2009/04/18 7:13:40

この丁寧なレスに感動しました。
コレを聞くと将来的にSSD導入したくなりますね。

今後の記事も期待させて頂きます。

投稿: つかさや | 2009/04/18 11:31:23

SSDの普及以前に先走った話をしますが、将来的にはコントローラもなくなって、DRAMのメモリモジュールのように、NANDフラッシュだけのモジュールをマザーに挿す時代が来るという予想もあります。

ttp://pc.watch.impress.co.jp/docs/column/hot/20090409_110626.html

上記リンク先記事の、Bill Gervasi氏の発言がそれです。
SSDコントローラが行なっていた事を、CPUやデバイスドライバで肩代わりしてしまえば、それさえも必要なくなるという発想で、それこそが理想の形かもしれません。

しかし、従来のプラットフォームとの互換性を考えれば、今のようなSSDの形態で妥協するしかありません。さまざまなOS、インターフェイスが並存するわけですから。

投稿: mfigure | 2009/04/18 11:54:01

つかさや さん
そう、今は手を出すと面倒もしくはお金がかかる、です。
もうちょっと落ち着くまで「待ち」がよろしいかと。
でも、マニアの場合は、「面倒」なのが「楽しい」という感覚に変わってしまうので、別にいいんですけどね…。
今後ともよろしくお願いします。

mfigure さん
とても参考になる情報をありがとうございました。

>SSDコントローラが行なっていた事を、CPUやデバイスドライバで肩代わりしてしまえば

うーん、私はこれはどうかと…。
記事にもある、モデムやLANなどは、それなりのものではありますが、ストレージまでCPUに任せると、危ないんじゃないかと思います…。
CPUの暴走で、ファイル配置の管理ができなくなると、ストレージの内容が完膚なきまでに破壊される危険性があると思いますので。
実際、フラッシュメモリですので、あっという間に根こそぎ消去される「スイッチ」があるので、決して杞憂ではありません。対してハードディスクは、全てを完璧に消去(物理的破壊ではなくデータ消去)してしまうのには、相当な時間と手間がかかりますから。

ですので、ストレージ管理は、独立したコントローラーの方が安全と言えます。
マザーボード直刺しでないなら、PCI-Expressか、ATAのような専用のインターフェースが用意されるでしょうね。
IDE(PATA)からSATAへは、比較的スムーズだったことを考えると、それほど難しい話だとは思いませんので。

投稿: ささもと | 2009/04/18 22:29:30

「ATAインターフェースを経由しているが故に無駄が発生している」というのは分かるのですが、
-その「無駄」は実際に使い心地に影響を与えるほど大きいのか
-その「無駄」は「デフラグ」で改善する類のものなのか
が明確でないので議論を呼んでいるのではないでしょうか。
(個人的には「クラスタサイズの問題」派なのですが、手元に自由にできるSSDがないので実験できていません…)
もしこの辺りが分かるような実験結果をお持ちでしたらお教えいただけるとうれしいです。

投稿: argrath | 2009/04/20 0:58:59

argrath さん
要は、概念として「ドライブ(データ保管場所)」ではなく「ディスク(円盤)」としてしか認識できていないのが問題ではないかと。

>-その「無駄」は実際に使い心地に影響を与えるほど大きいのか

(「使い心地」とは何か、でまた議論が分かれると思いますが)SSDは、現状は【そういう無駄を差し引いても】HDDよりも読み込みが速いために、見過ごされてしまっているだけです。
本来は、ファイル断片化が問題となるのはHDDの構造的な問題だけに、「SSDは構造的にファイル断片化など関係ない」という前提から言えば、HDDが主流から外れると、「ファイル断片化をいちいちHDD並みに再現する手間」というのはすぐに顕在化する「無駄」だということ。
それがたまたま顕在化したのが「プチフリーズ」なだけ。

ですので、

>-その「無駄」は「デフラグ」で改善する類のものなのか

これはまさしく「SSDを『ATAインターフェースに差し替えで使わなければならない』という固定概念から脱却できていない」ための疑問だと思います。
そもそもSSD内では、ウェアレベリングによりファイルは「みじん切り」される宿命なので、みじん切りを元に戻して、さらに「HDDに見せかけるため」だけに、さらにファイルを断片化させる、という無駄がある、ということ。

なぜ断片化がHDDでは問題となり、なぜSSDでは「問題とはならない、と言われている」のか、を考えれば、すぐに理解できるはずの話。

SSDをHDDと見なさないのが前提であれば、そもそも「クラスタサイズ」という概念自体が無駄。
クラスタサイズというのは、「スピンドル」という概念があるからこそ存在するのであって、SSDにはスピンドルなどないのですから。
SSDにはフラッシュメモリのブロックサイズは存在しますが、それはSSDのハードウェア的に固定されるものなので、ウェアレベリングにおいてコントローラーが管理するべきものであり、OSがファイルシステムとして管理するべきものではありません。

まぁ、もう少しわかりやすく言えば、

「今のSSDには『HDDエミュレーター』が搭載されている」

とでも言えばいいですかね。
エミュレーターなんて無くして、ネイティブで動作させた方が確実に速い、というのは実験をするまでもないですよね。

「回転部分のないメインストレージ」というものが従来なかっただけに、スピンドルありきのファイルシステムしか存在していない、というのが現状だと考えます。

投稿: ささもと | 2009/04/20 4:56:30

プチフリまとめ

・現在一般が入手可能なNANDフラッシュを用いたSSDにおいては、SSDが書き込み処理に使用するために確保している空きブロックを全て使い切った状況で更に書き込みを継続すると、ブロックコピーを繰り返す空きブロック確保処理が必要となり、相対的に大きな待ち時間が発生する。この状況が一般にプチフリと呼ばれている。

・書き込み処理時に使える空きブロックをより多く維持することが、書き込み性能の維持につながる。"空き領域のデフラグ"を行うことで、結果的に僅かなデータで占有された無駄なブロックが減り、書き込み処理時に利用できる空きブロックが増えることで書き込み性能が回復したと思われるデータが示されている。この対処により、プチフリの発生も起こり難くなると考えられる。

・デフラグ操作によりブロック書き込みのケースと、それを行わずにプチフリ(書き込み処理)が頻発するケースのどちらが、SSD書き込み信頼性の面で好ましいケースであるかは現状で不明である。

・ブロックサイズに対して小さなサイズの書き込みを高頻度で繰り返すことで空きブロックが浪費されることを抑制し、必要最小限の空きブロック消費に留めることを狙ったキャッシュの実装も、ソフトウェアレベル/ハードウェアレベルそれぞれで検討が進んでいる。

・プチフリ現象の根源は現状のNANDフラッシュの書き換えメカニズムの仕様に基づくものであると言える。メカニズムの解説は http://d.hatena.ne.jp/Lansen/ の関連が分かり易い。
NANDフラッシュを複数組み合わせるSSD、特に多値レベルのNANDフラッシュを組み合わせたSSDにおいては、実質的なブロックサイズが増大し、ブロックコピーに要する時間が増大するため、プチフリの時間も増大する傾向にある。

・「OSから見たファイルレベルの断片化を管理・再現する必要があるという強烈な無駄」という文章の意味は不明である。前述のとおりプチフリはNANDフラッシュの書き込みメカニズム、動的に変わる書き込み処理用の空き領域とそれを使い切った状況での書き込み操作で説明が付く。仕様上発生する問題であって「強烈な無駄」と言うに当たらないし、ここで説明していない何か別の大きな無駄があるのか?という風にも見えてしまう。

・プチフリに遭遇した人は、今SSDと向き合っている人であり、今出来るより良い向き合い方を探そうとする人であろう。具体的な中身がなく漠然とした「SSDに最適化されたファイルシステム」「高速インターフェース」といった将来論や、「HDDやATAの固定概念から脱却できていない」という説法は誰も望んでいないと思う。

投稿: hoge | 2009/04/21 21:30:17

hoge さん
長文のまとめ、ありがとうございました。

ただ、一点だけ、大きな見落としがあります。
「今のSSDは『HDDエミュレーター』状態である」という、今回の記事の主題を。

「空き領域のファイル断片化の解消」は、「フラッシュメモリの空きブロックの断片化の解消」ではありません。
OSから見た「空き領域」と、フラッシュメモリ上の「空きブロック」は、全く別物の管理です。
そこのギャップをうまく処理するのが難しいために「大きな無駄」が発生している、と私は書いています。

>具体的な中身がなく漠然とした「SSDに最適化されたファイルシステム」「高速インターフェース」といった将来論や、「HDDやATAの固定概念から脱却できていない」という説法は誰も望んでいないと思う。

だから「今のSSDはマニアのオモチャだ」と書いてます。

本気で導入を検討している人は、きちんと欠点を理解するべきですし、「速いぞ!」というだけで飛びついた「新らし物好き」な人は単なる人柱。
自作PCが出た当初から「人柱」という言葉は存在してますし、今でも基本は同じです。
人柱と呼ばれることをある程度楽しめるのはマニアだけ。
普通の人は、人柱扱いなんてされたくないわけですので、まだ「キワモノ」のSSDに手を出すべきではない、ということ。

少なくとも、「なぜ今、プチフリやパフォーマンス低下に悩まなければならないのか?」という疑問があるなら、ファームウェア書き換え程度の表面的な問題では解決できないことぐらいは、そろそろ理解するべきじゃないかと思いますけよ。
hoge さんの意見は、何か「今ある全てのSSDのプチフリを何とかする方法以外は興味ない」とでも言いたげな内容ともいえます。
ハッキリ言いますが「それは無い」です。
仕様に関する「根本的な前提条件」が問題ですので。

フラッシュメモリの空きブロックを求めて、書き換えで異常に時間がかかる場合のあるウェアレベリングの問題がある。
さらに、マザーボードに対して「HDDと同じく『(ブロック単位ではなく)ファイル(クラスタ)単位で断片化している』という別の『見せかけ』」をしなければならないという大きな無駄が、さらなるパフォーマンス低下を招いている。
本来、この辺は、原理からたどればすぐにわかる話。

それを理解したくないと言うのはかまいませんが、プチフリーズを本気で何とかしたいと思っているなら、原理ぐらいは理解するように努力し、そこからいろいろ考えをめぐらせるのが当然の姿かと思われます。

逆に、「誰も望んでいない」「みんなそう言ってる」という言い方こそ、具体的な中身がなく漠然とした「議論のための議論」かと思います。

投稿: ささもと | 2009/04/22 7:37:25

> ただ、一点だけ、大きな見落としがあります。「今のSSDは『HDDエミュレーター』状態である」という、今回の記事の主題を。
主題は見ていますが、プチフリの主要素としては見ていない、という観点での書き込みです。


>「空き領域のファイル断片化の解消」は、「フラッシュメモリの空きブロックの断片化の解消」ではありません。
ゆえに、「空き領域のデフラグが、空きブロックの断片化が"解消"する」とは書いていません。
デフラグに付随する効果として、「結果的に僅かなデータで占有された無駄なブロックも減っていると思われる」としています。
理由は、空き領域のデフラグが「空き領域のデフラグ後も、空きブロックの断片化は改善しない」と言い切れるようなレベルの性能向上に留まっていないと思われるからです。
空きブロックの断片化も改善していなければ、書き込み性能の改善は生じても、連続した書き込みでプチフリが発生する頻度は大きく下がらないでしょう。


> OSから見た「空き領域」と、フラッシュメモリ上の「空きブロック」は、全く別物の管理です。
別物と認識した上で、後者に関するNANDフラッシュ動作の仕様をプチフリの根源として書いています。
前者と後者は、プチフリ発生の観点では独立ではありませんし、前者は後者のメカニズムの従属要素、影響の増加要素です。
『HDDエミュレーター』とは言っても、要は「HDDを模することで、よりNANDフラッシュの仕様に対して都合の悪い書き込み操作になる」というだけで、「最終的に何の処理が遅くてプチフリが発生するか?」の答えはNANDフラッシュの内部にあり、その遅さが支配的な要素です。HDDを模さなくとも、プチフリが発生する状況は容易に作り出せるとも言えます。

1>「そろそろ理解するべきじゃないかと思いますけよ」「本来、この辺は、原理からたどればすぐにわかる話」
2> 「プチフリーズを本気で何とかしたいと思っているなら、原理ぐらいは理解するように」
3>フラッシュメモリの空きブロックを求めて、書き換えで異常に時間がかかる場合のあるウェアレベリングの問題がある。

1、2と散々に言われていますが、私のそもそものまとめは、3そのものです。私のまとめは読まれていない?という感じですね。

>「HDDと同じく『(ブロック単位ではなく)ファイル(クラスタ)単位で断片化している』という別の『見せかけ』」をしなければならないという大きな無駄が、さらなるパフォーマンス低下を招いている。
『見せかけ』という『HDDエミュレーション(?)』はNANDフラッシュのメカニズムに対し悪影響を増加する要素であるという点では、上記の私の意見と同じですね。


> hoge さんの意見は、何か「今ある全てのSSDのプチフリを何とかする方法以外は興味ない」とでも言いたげな内容ともいえます。

敢えて苦言めいた文章を足している理由は、「SSDの無駄は「デフラグ」で改善する類のものなのか?」という話に「まさしくSSDを『ATAインターフェースに差し替えで使わなければならない』という固定概念から脱却できていないための疑問だと思う」というような見解を見たからです。一言で言えば、大きなお世話論。今使おうとするような人に、現在手にできない脱却手段の話をしても仕方ないかと。
「今のSSDはマニアのオモチャ」等と思うのは結構ですが、モノではなく使う人を否定するような主張を書き並べるのは何故だろう、とも思いました。
敢えてそれを書きたい、皆がそれを望んでいると思うのならこれ以上言うことは無いですが、一般的には放置で良い話でしょう。

投稿: hoge | 2009/04/22 21:00:05

hoge さん

>>逆に、「誰も望んでいない」「みんなそう言ってる」という言い方こそ、具体的な中身がなく漠然とした「議論のための議論」かと思います。

こちらは読み飛ばされたようで。
こういう空虚な「議論のための議論」こそ、

>敢えてそれを書きたい、皆がそれを望んでいると思うのならこれ以上言うことは無いですが、一般的には放置で良い話でしょう。

とおっしゃるとおり、今回のコメントにはいちいち返さないでおきます。
正直、全くまとまってなくて、何が言いたいのかさっぱりわかりませんし。

ちなみに、記事では「プチフリーズの原因」を説いているわけじゃないんですよね。それこそが大きな誤解。
どうやらまだお気づきでないようですが、記事本文では、タイトル以外に「プチフリーズ」という言葉は使っていません。

また、いつまでもぶつ切りのコメントで返していただいているようでは、なぜそうなのかを考えて読んでいただいてない、と言わざるを得ません。

ウェアレベリング独特の書き込み遅延が問題になっているのはわかっていますが、それの究極原因は、Windows自身がシステムドライブに、ページファイルやログファイルなど、細切れの書き込みを常に大量に行なっていること。
ROM-WINのようにシステムドライブへ書き込みをしないものなら、ウェアレベリングによるパフォーマンス低下は起こりえないですし、寿命もほぼ気にならない。それは一連の記事やコメントですでに書いてます。
また、OSが管理するファイルシステムで、わざわざSSDでは関係ないはずのファイル断片化を管理させなければならない無駄を排除できれば、読み書き共に効率UPできるのは明白です。
それができていない「HDDコンパチブル」を求めている現状では、SSDはその特性を発揮できずもったいない、と書いているんですが、ねぇ。

投稿: ささもと | 2009/04/23 5:46:07

去年、Windows7がSSDのサポートを発表したのは、今言われている問題に対応をするためだと思っていたんですが、どうなるんでしょうね??
http://japan.cnet.com/news/ent/story/0,2000056022,20383053,00.htm?ref=rss

投稿: tale | 2009/04/24 14:10:39

1年前にEeePCを購入し、最近(1年前に比べて安価な)大容量SSDを購入しようと考えているものです。

>>記事本文では、タイトル以外に「プチフリーズ」という言葉は使っていません。
>>hoge さんの意見は、何か「今ある全てのSSDのプチフリを何とかする方法以外は興味ない」とでも言いたげな内容ともいえます。ハッキリ言いますが「それは無い」です。

無いなら誤解を与えるような文章を書かないで頂きたいです。「どうやらまだお気づきでないようですが」とか煽って何がしたいんですか?
hogeさんの意見に同意。「使う人を否定するような主張」には不快感があります。プチフリに何か有用な手段でもあるのかと思って読んでみたらこれでは…。
結局最後に「現在手にできない脱却手段の話」という結論というならまだわかりますが、「キワモノであり、マニアのオモチャ」など煽る発言はいりません。

現在SSDに興味のある大半の人なんてネットブック使用者ですよ。それも選択肢にHDDタイプを選ばないような人。デスクトップでSSDなんてまだそんな状況じゃないのはわかりきってます。知りたいのはそんな情報(WindowsはSSDの特性を生かしてないとか)じゃないってことです。

投稿: 通りすがり | 2009/04/29 8:59:01

tale さん

まさしくそうなんだと思いますよ。
デフラグの概念は、SSDのためではなく、まさしくFDD・HDDのためにあるんですから、「SSDはSSDなりの管理方法をしなければ」というのは、開発レベルでは、すぐに行き着く結論だと思っています。
実際、CD-ROMはCDFSやUDFなど、FATやNTFSなどとは別の管理が存在します。
それは、ストレージとしての性格が全く違うためです。ATA接続なのは、速度的にそれで充分だから。
SSDも、いつまでも「HDDエミュレーション」じゃないでしょ、ということ。

通りすがり さん

>hogeさんの意見に同意。「使う人を否定するような主張」には不快感があります。

「使う人」ではなく「誤解・幻想を抱いて使おうとしている人」です。

「SSDは起動が速いぞ!!」なんて煽られてSSDを買ったとしたら、責められるべきは「速いぞ!!」という幻想を煽った人。
違いますか?

別記事で書いている通りで、プチフリーズはそもそもフラッシュメモリであるが故のしわ寄せのようなもの。
ハッキリ言いますが、今持っているSSDでプチフリーズが出るのであれば、根本的な解決法なんてありません。
一時的に何とかなっても、根本原因が解決できていないので同じです。
この記事ではそれを書いています。
「今持っているSSDをなんとかできるんじゃないか?」という誤解についてを。

>無いなら誤解を与えるような文章を書かないで頂きたいです。

何をどう誤解したのか分かりませんが、現行のSSDはそういうものだ、ということは厳然たる事実です。
SSDはまだまだこれからのデバイスであり、様子見が正解。
そこをあえて手を出すのなら、人柱覚悟で。
改めて書くまでもなく、現時点では、それなりにあれこれ調べれば、すぐに気づく話だと思ってますけど。

繰り返しますが、責められるべきは、手放しで「速いぞ!!」という誤解を与えた人。
実際に読み込みは速いのですから、誤解が誤解であることに気づくのが遅れたという形。

「ネットブックは選択肢がない」のはどうしようもないですよね。
高性能なコントローラーやSLCタイプが手に入らないなら、空き領域のデフラグやリカバリを定期的にかけるか、あきらめるしかありません。
それに、ネットブックは本来、メインマシンと同じ性能を求めるべきものではありません。
販売店でも、サブマシンとしての利用を勧めてます。

それに、そもそもネットブックでのSSD利用は、速さを求めたものではないはず。
「知りたいのはそんな情報じゃない」と言われても…ねぇ。
加えて言えば、私はネットブックメーカーの人間ではありませんから。

昨日発売の週刊アスキー2009 5/12-19号に「SSD搭載マシン徹底チューニング11」ぐらいが「知りたい情報」ではないかと。
こちらにも、私がすでに書いた「Defragglerで空き領域をデフラグするといいかも」という情報が書かれてます。
でも、この記事は、どっちかというと、ネットブック向けではなく、SSDを自らチョイスした人向けですけどね。

>現在SSDに興味のある大半の人なんてネットブック使用者ですよ。それも選択肢にHDDタイプを選ばないような人。

はて、本当にそうでしょうか?私にはとてもそうとは思えないのですが。

投稿: ささもと | 2009/04/29 10:21:21

依然SSDは実験段階のデバイスだと思います。

私を含めて、これを買っているのはその実験に自ら進んで参加している「ねぎを背負った鴨」なんです。一連のブログの書き込みは、この当たり前の状況を否定しているようで、それが多くの実験参加者に不快感を与えています。

あなたが正業としている業務も、このコンピュータ業界の未成熟さがあるから成立しているだけの虚業なのです。いくら誠実にヘルプ業務を行い、人に感謝されようと、これは本来MicrosoftやNTT、バッファーローが自分たちの仕事を完成させないで商品化しているおかげである、ということを再度自覚してください。

私が始めて購入したコンピュータは、プラズマディスプレイの東芝J3100でした。多くの人たちと同じように、私もこれを手にした瞬間に絶望しました。「自分のしたいことを実現するために買ったのに、こんなに未熟なものだったのか」と。それでも、同じ瞬間にその「今は使えなくい道具=将来使えるようになるかもしれない道具」を使って業務をこない、日々の営業をしていた人たちがいるし、それを改良し続ける人たちがいたのです。

初代のエクセルを当時のマッキントッシュに載せて、会計業務を行っていた人たちの行為を「実験段階のツールを喜んで使ったもののわからないマニア」と批判するのでしょうか。

SSDがどれくらい使えないか(どれくらい使えるか)などは程度の問題に過ぎません。

投稿: suomi | 2009/04/29 13:28:27

suomi さん

>私を含めて、これを買っているのはその実験に自ら進んで参加している「ねぎを背負った鴨」なんです。一連のブログの書き込みは、この当たり前の状況を否定しているようで、それが多くの実験参加者に不快感を与えています。

…?
意味不明ですね…。
その「鴨」の自覚が有るか無いかで全然違うんですけどね。
有れば当たり前のことを改めて書いているだけ。
無ければ当たり前のことを再認識していただきたい、というだけ。
それに、先のコメントにあった「ネットブック利用者」は、「自ら進んで」とは限らないでしょう?
何か読み違いをされているような気がします。

プチフリーズの表面的な解消を求めているなら、ぐぐればよそでいくらでも出てきます。
でも、ツールを使ったり、設定を変えたり、管理手法を変えたり、「涙ぐましい努力」はいくらでもできますが、「いじる手間」を楽しむマニア限定の「ただの対症療法(しかも面倒臭い)」しかなく、原理や原則は変わっていないので、結局は同じこと。
「マニアの遊び」ではなく、業務で使うなら、なおさらデメリットを理解した上で手を出すべきものであり、「いじる手間」は決して歓迎されないもののはずです。

>あなたが正業としている業務も、(中略)、ということを再度自覚してください。

これはそもそも関係ありませんし、意味不明。
完成された業界なんてどこにあるのでしょう?
修理が不必要な機械なんてあるのでしょうか?
トラブルの起こらない機械なんて存在するのでしょうか?

何様のつもりなのか知りませんが、この言葉は、私だけでなく、パソコンのサポートをしている職業人全般に対する冒涜みたいなものです。

あなたがどんな仕事をしているのか知りませんが、その論理で言えば、程度の差こそあれ、どんな仕事も、「業界がもっと成熟していてもっと便利になっていれば、無いはずの仕事」と言えます。

クルマだって同じですよ。100年以上も前から進化をし続けていますし、いまだにJAFのようなレスキュー業が成り立っています。IT業界だけが特別だと思い込んでいませんか?

それに、メーカーに対して「自分たちの仕事を完成させないで商品化している」という暴言を論拠とするならば、議論に値しないと考えます。

>初代のエクセルを当時のマッキントッシュに載せて、会計業務を行っていた人たちの行為を「実験段階のツールを喜んで使ったもののわからないマニア」と批判するのでしょうか。

私はそこに近い場所にいましたが、当時、大多数の「傍観者」は、そう言ってた人が多かったと思いますよ。

当時はパソコン、しかもMacだなんて、ハイエンドだと100万円近くした高級品で、金持ちの道楽と言われても仕方のないものでしたから。
逆に言えば、かなり進化した今のエクセルを使うのに「100万円かかる」と言われて、誰が手を出すでしょう?

J3100の話も同様。
普通の感覚で言えば、あの当時、あんなバカ高いものを喜んで使っていたのはマニアだけです。
私は貧乏なマニアでしたので、当時は羨望のまなざしでしたが(笑)。
業務で使っていた会社は、「面倒くさいけど、それでも電卓叩くよりはマシ」と仕方なく高いお金を出していたはずです。
担当者の趣味で買ったところもないではないでしょうけどね…。

昔話をするならば、それよりもずっと以前、漢字も使えない8ビットのBASIC搭載機のころでも、業務パッケージは存在しました。
それに比べれば、J3100はびっくりするほど高級機なわけですが…。
それでも「手にした瞬間、絶望した」というのは、「煽られて買った」という点で、今のSSDと同じではないでしょうか。

エクセルに関して言えば、成熟に近いとは言え、いまだに進化の途上ですし、一般の人にはまだ使い方のわかりづらい「道具」です。
それの使い方を教えることを仕事にしている人は今でもいます。

ということで、昔話は、価格と普及率の点で、比較の対象としては、はなはだ不適切です。

それに、私はSSDそのものを否定しているのではなく、SSDを「HDDの差し替え」としてしか論じていない「表面的な議論」がダメだと言っているのです。
それを読み取れていない(読み取ろうとしない)ことからくる誤解であれば、こういう昔話もわからなくもないです。
でも「幻想を抱いて買って、がっくり」という点では同じかもしれません。

>SSDがどれくらい使えないか(どれくらい使えるか)などは程度の問題に過ぎません。

…だからどうだとおっしゃりたいのでしょう。

この記事を否定するならば、今後のSSDがどういう方向性で推移していくか、どうなっていくのか、どうやれば現状の改善につながるのか、ご自身の考えをきちんと述べていただきたいものですね。

それこそ、

>依然SSDは実験段階のデバイスだと思います。

そんな言葉だけなら誰にでも言えること。

先のコメントにも書きましたが、責められるべきは、ろくに検証もせず、原理の理解もせず、単なる「HDDのハイスピード版」として手放しで「速いぞ!」と煽っている(いた)人。
この記事は、改めて「そうじゃないよ」と書いているだけのこと。

suomi さんのコメントが、「単にイラッときて、その根拠も結論もなく書き込んだ」という文章でないと思いたいものです。

「プチフリーズ」という言葉に踊らされているだけ、とならないようにしてもらいたいものです。

投稿: ささもと | 2009/04/30 3:25:12

SSDの問題ですが、ざくっと読む限り、論理的な話と物理的な話が
ごちゃごちゃになっているような気がします。

というのも、ファイルシステムは論理的な話であって、物理的な話で
はないからです。言いたいこととしては、論理と物理のオーバー
ヘッドを減らせばもっとパフォーマンスが上がるはずというのは、こ
れは、紛れも無い真実だと思います。そういう意味では、正しい解説
なのだと思います。

ただ、中に回転する円盤が存在しようがしまいが、ストレージとして
みた場合にSSDとHDDでは、インターフェースを介して見える部分
では、やっていることに大差はありません。

要するに、ストレージの仕事とは、ホスト(OS)から論理ブロック
(LBA)のこの場所にこのデータを記録しろと指示がきたら、そ
れを対応した物理ブロック(PBA)に記録することです。読み出し
時はその逆を行うに過ぎません。
バスアナなどをみれば、すぐにわかりますが、OSからのストレージ
へのアクセスは、LBAのここにWriteしろ、このLBAをReadしろとい
うコマンドがやりとりされているだけです。

外部インターフェース(この場合は、SATAやIDEなどです)を通
してOS管理できるものは、あくまでドライブのLBAであって、PBA
の管理ができるわけではないことが一般的だからです。
そういう意味では、SSDがHDDのエミュレートを行っているわけ
ではありません。SSDは、ストレージとして、一般的な振る舞いを
しているだけです。まあ、解りやすく、HDDのエミュレートという表
現を使われたのだとは思いますが。

さてSSDにおける問題ですが、現時点では、ファイルシステムが、
NANDフラッシュメモリの物理的な仕様に即していないことにつき
るのではないでしょうか。
つまり、記録時は、ページ単位で、しかもオーバーライトができな
い。データを記録する場合は、必ず、データの消去がなされてい
る必要がある。さらに、消去は、ブロック単位というページをいく
つかの数でまとめたものでしか行えないなどです。

現在、一般的なファイルシステムは、すべてのPBAがオーバー
ライト可能なことが前提でです。
言い換えれば、LBAとPBAの対応表の変化が少ない媒体が前
提といっても良いでしょう。
HDDでも欠陥管理機構がありますので、LBAとPBAの対応表が
全く変化しないわけではありませんが、SSDでは、これが、頻繁
に変化します。理由は、前述したとおり、NANDフラッシュメモリ
の仕様によるためです。

さらに記録回数の制限がありますので、全体を効率よく使用し、
トータルでの寿命を延ばすための仕組みも導入する必要があり
ます。結果として、SSDは、内部に独自のファイルシステムもどき
を抱えることが必須となっています。

このSSD内部のファイルシステムもどきとOSのファイルシステムの
オーバーヘッドが少なければ少ないほどSSDの性能は向上すると
はずです。ただ、このSSD内部のファイルシステムもどきは、各社
のブラックボックスでノウハウの集合体とも呼べるものです。
当然、特許が絡んでくる話なので、特定のものに統一されることは
ないでしょう。つまり、NANDフラッシュメモリの特性を考慮したOSの
ファイルシステムを準備することが現実的かもしれません。

なお、SSDですが、現在のDRAMキャッシュは、増やせば良いという
ものではありません。というのも、キャッシュの増加は、SSDにとって
性能アップの手法としては最適ですが、大きくしすぎると、記録中の
電源切断などによるデータの破壊というリスクが増大します。

たとえば、SSDの場合、キャッシュを大きくし、最適なページサイズ
になるまでキャッシュをデータに蓄えてから記録を行うことで、ある
程度は、OSのファイルシステムの無駄を少なくできます。

しかし、OSは、突然の電源切断でも最小限のデータの損失ですむ
ようにキャッシュ内にあるデータを物理的に記録させるFlash Cache
コマンドを頻繁に送っており、SSDの場合、このキャッシュ効率を良
くするためには、このコマンドを適当に無視する必要がでてきます。
ですが、無視すると言うことは、逆に電源切断時のデータの損失の
リスクが増大します。これは、非常に危険です。

個人的には、SSDは、最終的に不揮発RAMを搭載することになる
と思っています。

投稿: 通りすがり | 2009/05/02 6:26:23

通りすがり さん

論理的な話と物理的な話がごちゃごちゃになっているような気がしますが…。

>ただ、中に回転する円盤が存在しようがしまいが、ストレージとして
>みた場合にSSDとHDDでは、インターフェースを介して見える部分
>では、やっていることに大差はありません。

そうでしょうか?
そう思えるのは、それこそ「HDDエミュレーションモード」で「ケーブルレベルでのHDDの差し替え」としてしか見ていないからではないでしょうか?

先のコメントにも書きましたが、ストレージの性格により、ファイルシステムは適正なものを使われる必要があると思いますよ。
極端な話、基本的にシーケンシャルライトのCD-RWを使うのに、本来デフラグなんてありえませんが、それをムリヤリ「HDDエミュレーションモード」で使えるコントローラーを作り、「HDDとケーブルレベルでの差し替え」として代用して、記録方式が違うのでデフラグしなくていい、RAID0にすれば、と言っているのと同じようなものです。

>しかし、OSは、突然の電源切断でも最小限のデータの損失ですむ
>ようにキャッシュ内にあるデータを物理的に記録させるFlash Cache
>コマンドを頻繁に送っており、SSDの場合、このキャッシュ効率を良
>くするためには、このコマンドを適当に無視する必要がでてきます。

それこそ、「HDDエミュレーションモード」に基づいた話ではないでしょうか?
SSDのウェアレベリングのキャッシュの話は物理的なものであり、論理的な部分とごっちゃになると、前提がなんなのかわからなくなりますよ。

投稿: ささもと | 2009/05/02 9:01:33

通りすがりです。

>それこそ、「HDDエミュレーションモード」に基づいた話ではないでしょうか?
>SSDのウェアレベリングのキャッシュの話は物理的なものであり、論理的な部分
>とごっちゃになると、前提がなんなのかわからなくなりますよ。

申し訳ありません。僕の乏しい知識では、理解不能です。
そもそもHDDエミュレーションとはどういうものをさされているのかが、
全く理解できていないようです。申し訳ございません。

再度申し上げておきますが、僕の乏しい理解では、ストレージというものは、自分自身にどの
ようなデータが書かれているかなどということは全く理解しておらず、Input/OutputのIFを
介してデータを書けといわれればそれを記録し、読めと言われれば読むことだと思っております。
加えておくと、IFも何でもかまいません。SATA/IDE、PCI、PCIe、独自なんでもよいです。

そして、ファイルシステムとは、ストレージに記録されたデータを読み出すことによって、得ら
れる結果のようなものだと理解しております。
これを前提として話をしておりました。
僕が申し上げたのは、そういう意味では、HDDもSSDも同じだと言ったに過ぎません。要するに
ストレージは、指定された場所にデータを書いたり読んだりするだけで、そのデータの中身が
どうであるかなどは知ったことでないというわけです。

SSDのキャッシュの話もこれを前提に、そのデータの中身がなんなのかが解らないからこそ、
頻繁に物理的に記録させるコマンドをOSが送っているのです。
これのどこが、HDDエミュレーションに基づいた話なのでしょうか?

キャッシュという技術は、今後も使われてつづけるはずです。
揮発RAMを用いたキャッシュ技術を使用する以上は、データの損失に対処するために、
Flash Cacheのような仕組みは今後も必須です。
これをOSに任せるのか、それともストレージ自身がインテリジェントになり適当な間隔で実
施するのかは知りませんが。

追伸:おそらく、ストレージに関しての認識が、僕は未熟なのでしょう。
ストレージというもの関して、非常に多くの見識をお持ちのようですが、僕には、ついて行けない
ようです。できれば、もう少し、解りやすく説明していただけたらと思います。その際には、まず、
誤解を受けそうな部分には、まず、前提を据えていただき、説明をしていただけたらと思います。

投稿: 通りすがり | 2009/05/02 22:14:27

初めての方は、右上の、”このブログは”で始まる文章をかみ締めてください。
長文の意見などは、他所に書いてリンクを貼るのが好ましいと思います。
ブログの主が、意見を求めていないのに、コメント欄で議論されるのは、どうかと。
(考え方は、複数あってもいいでしょう。)

下記の記事の4月分は参考になります。
http://pc.watch.impress.co.jp/docs/column/hot/

投稿: ネムイヨ | 2009/05/03 1:15:19

通りすがり さん

>そもそもHDDエミュレーションとはどういうものをさされているのかが、
>全く理解できていないようです。申し訳ございません。

うーん、その辺を理解していただくために、CD-RWのたとえを持ってきたんですが…。

HDDのクラスタサイズというのは、記録媒体がディスクであるがゆえの概念(シリンダ/トラックをいくつに区切るか)であって、デバイスの物理記録とリンクした考え方です。
対してSSDは、デバイスの物理記録はブロック単位(ハードウェアによって完全に固定)で、(論理的な概念の)フォーマットでのクラスタサイズの変更には全く無関係です。しかも、ウェアレベリングによってブロック単位で常に物理記録位置が変化します。
SSDコントローラーは、その「ブロック単位の変化」をOS側に悟られることなく、クラスタ単位のファイル管理を受け入れ、OSに対しては常に「私はHDDと同じだ」と見せかけています。
それを私は「HDDエミュレーション」と呼びました。

つまり、SSDは、HDDとは物理記録の管理が全く違うにもかかわらず、HDDに見せかけようとする無理・無駄が存在するのです。

CD-RWも、HDDとは全く違う物理記憶をさせます。
シーケンシャルライトしかできないのでランダムライトはそのままでは不可能、上書きもできず、消去は基本的に全消去のみです。
それをHDDと全く同じように「見せかける」コントローラーが存在すれば、CD-RWでもランダムライトは可能になります。
でも、消去動作の違いにより、動作的に強烈な無駄が発生するため、実用レベルにならないのは容易に想像できます。
この例でのSSDとの違いは、全消去かブロック単位消去か、読み書きのスピードが遅いか速いか、の違いぐらいです。

SSDの場合は、HDDと比べて読み出しが非常に速いので、記録方式のギャップによる無駄が見えづらくなっているだけです。
そこでデバイスの特性を無視して、あえて遅いHDDをエミュレートし、ケーブルレベルでの差し替えを可能にしているだけのこと。
それがSSDコントローラーの仕事であり、現状では事実上、その性能がSSDの性能を左右している状態です。
ですので、プチフリーズだソフトウェアライトキャッシュだとか、それはかなり「表面的な議論」でしかない、と言っているのです。

ウェアレベリングに、相応の容量のキャッシュメモリが必要なのは理解できます。最近のSSDに搭載されている「キャッシュ」とはこのことだと解釈してますし、おそらくそれは今後必須となるでしょう。
ただ、これはデバイスのハードウェアレベルでの話(いわば(動作は違いますが)ダイナミックRAMのリフレッシュと同じレベルのもの)なので、通りすがり さんのおっしゃる「書き込みキャッシュ」は、デバイスに対する前段階のもの(OSからの記録指示段階)ではないかとおもいます。であれば概念が全く違います。

>追伸:おそらく、ストレージに関しての認識が、僕は未熟なのでしょう。
>ストレージというもの関して、非常に多くの見識をお持ちのようですが、僕には、ついて行けない
>ようです。できれば、もう少し、解りやすく説明していただけたらと思います。

…いや、バスアナとかおっしゃられる方にそういうことを言われても…。
ただ、書き込みを読んでいる限りでは、「ウェアレベリング」というものをどうもきちんと把握されておられないという気がします。

単純な話、

>再度申し上げておきますが、僕の乏しい理解では、ストレージというものは、自分自身にどの
>ようなデータが書かれているかなどということは全く理解しておらず、Input/OutputのIFを
>介してデータを書けといわれればそれを記録し、読めと言われれば読むことだと思っております。

これは違うんじゃないかと思います。
もしそうなら、フォーマット時のクラスタの存在意義はありません。

ぐぐればわかる範囲の話ですので、まずはせめてウィキペディアあたりでHDDとSSDの違いを把握いただいた上で、ツッコミを入れていただければと思います。

ネムイヨ さん

>長文の意見などは、他所に書いてリンクを貼るのが好ましいと思います。

そうですねぇ。
そうしていただければ助かるのは確かですが、やり取りが見えづらくなったり、お互いの理解ができないままだったりしますので、疑問は直接投げかけていただくというのもひとつのやり方かと思います。
できる範囲でお応えしたいとは思いますが、記事の更新頻度に直接響きますので、なんとも…。

>下記の記事の4月分は参考になります。

そうですね。
中でも、

http://pc.watch.impress.co.jp/docs/column/hot/20090427_153772.html
http://pc.watch.impress.co.jp/docs/column/hot/20090501_167922.html

この辺は参考になりますね。
ただ、「デフラグが寿命を縮めるだけで無意味」というのは、理屈レベルでの話しかしてない気がしますが…。

投稿: ささもと | 2009/05/03 7:45:01

通りすがりです。

>これは違うんじゃないかと思います。
>もしそうなら、フォーマット時のクラスタの存在意義はありません。

ええ、そんなに大きな意味はありませんよ。
なぜなら、ファイルシステムでいうところのクラスタは、あくまで効率よくデータを管理するため
の論理的な単位に過ぎないからです。

実際、HDDの最低記録単位は、セクタ(512バイト)ですし、SSDではこれが、数MBとかに大きくなった
だけかと思いますが。

クラスタとは、そのストレージの全記録ブロックを管理すると、大変なことになるので、それをいくつか
の固まりとしてブロックとして管理することで簡略化したに過ぎません。

たとえば、HDDのように物理的には512バイト/セクタで記録するものを、4つまとめて2048バイトで記
録するとかですね。こうすれば、実際にソフトウェア(この場合はOSというかファイルシステム)が管理
する論理アドレス(LBA)の数は、物理アドレス(PBA)の4分の1になり楽ですよね。

さて、CD-RWなどのお皿の話が出たので、これについても少々お話ししておきます。
CD-RWは、ランダムアクセスできないと書かれていますが、これは間違いです。
CD-RWは、指定したエリアをオーバーライトできますので、ハード的にやろうと思えば可能です。
ただし、記録方式は、パケットライトに限定され、記録容量がパケットオーバーヘッド(Runin/
Runout/Linkの計14kB)分減少します。
通常、64kBの固定長パケットで記録しますので、実際にユーザーが記録できる容量が約2割ほど減ります。
なぜ、64KBの固定長パケットを使用するかは、簡単です。
メディア全体を64KB単位に区切って使えば、メディアの容量内にいくつの論理ブロックができるかは、
簡単に計算できます。
さらに、このできあがったブロックに1から順にアドレスを振っていけば、LBAで簡単にアクセスできます。
これが、CD-RWで使われているパケットライトソフトの考え方です。
CD-RWで採用されているUDFは、これを前提に作られています。

なお、CD-RWに関しては、ディスクの欠陥管理がハードウェアベースで搭載されていないので、
ファイルシステムで欠陥管理を実現しなければならないという制限があり、少々面倒です。
UDFの欠陥管理は、LBAで指定されたアドレスにデータを記録したら、そこをリードし、エラーが
あれば、ディフェクトと認識。交替エリアの正常なブロックへデータを記録し、ディフェクトリストに登録します。
これらの処理をすべてソフトウェアで行うことになります。

さらにCD-RWは、2KB単位で記録できますが、前述したように64kBパケットを記録を行いますので、
特定アドレス内のデータを書き換える場合には、工夫が必要です。
これは、SSDにある部分似ていますが、オーバーライトできる分楽になっています。

CD-RWの場合は、リードモディファイライトという手法を利用します。これは、書き換えたいブロック
(CD-RWの場合は、パケット)のデータ全てを読み込み、必要な部分を書き換えて記録し直すとい
う手法です。
SSDの場合は、1度消去しないと同じ物理アドレスには記録できないので、消去単位のブロックで
データを読み込み、必要な部分を書き換え、さらにそのブロックをイレースして、書き戻すことに
なります。
CD-RWと似てますが、制限がある分複雑ですよね。単位も大きいですから。

少々クラスタからは、離れてしまいましたが、HDDやSSDが内部でやっていることは、CD-RWの
UDFに近いものです。ただ、完全なファイルシステムが入っているわけではないので、HDDは、
LBAとPBAの管理やディフェクト等のより簡素なもので、SSDは、それよりも複雑であるに過ぎません。

また、CD-RWのUDFのようにハードウェア特性と密接に絡むことで、OS自体というかファイルシステ
ムレベルでストレージのデータを管理することもできなくはありません。

ただ、現状では、汎用性を持たせるために、LBAを用いたアクセス手段をストレージは提供してい
ます。このLBAを用いたアクセス手段がHDDエミュレーションと呼ばれるなら確かにそうでしょう。

なぜなら、SSDの場合、もともとファイルシステムに近い複雑な管理が必要になるので、いっその
こと専用のファイルシステムを入れてしまい、従来のHDDとは全く異なる手法でアクセスする方法
がよいかもしれないからです。互換性が無くなって、対応が大変ですけどね。

投稿: 通りすがり | 2009/05/05 0:06:28

通りすがり さん
なんか「未熟だ」と自称されている割には雄弁ですね。
議論のための議論に割く時間はないので、ここだけ。

>実際、HDDの最低記録単位は、セクタ(512バイト)ですし、SSDではこれが、数MBとかに大きくなった
>だけかと思いますが。

それはSSDの場合、ウェアレベリングのために、デバイスが独自に管理する(物理的なもので不可変であり、かつデバイスによりまちまちな)単位であり、SSDコントローラーにより管理され、OSから見えない・OSに見せないものです。

ブロックサイズ(物理単位)は、OSが管理するクラスタ(論理単位)とは完全に無関係に存在するものであり、そこのギャップを埋めるために、SSDコントローラーが「HDDに見せかけること(HDDエミュレーション)」をしている、と書いているんですけどね。

そこを全然読んでいただいてない(ウェアレベリングに関する記述が微塵もない)ので、長いだけの書き込みになってしまっているのが残念です。

私が考えるに、表面的対処として、クラスタサイズとブロックサイズを合わせてみたところで、デバイスによりブロックサイズも一定していませんし、それがパフォーマンス向上につながる保証はないでしょう。

デバイスごとに統一も何もない、HDDエミュレーションのために各社まちまちな、中で何をどうしているのかOSには見せないSSDコントローラーが存在する以上、そう言わざるを得ません。

長いコメントをいただくのはいいのですが、前回も書きましたが、ちょっとネット検索すればわかる程度の「ウェアレベリング」に関して、ご理解いただいてない(理解しようともしない)なら、議論になりません。
また、CD-RWの話は「本筋ではない枝葉の話だ」と流れを読めないようでは表面的な話しかできませんし、時間の無駄です。
表面的な話しかできないようでは、SSDが「ケーブルレベルで互換があり、HDDと差し替えるだけ」のデバイスとしか見られず、そこまでの話となります。
そういう話をいているわけではありませんので。

投稿: ささもと | 2009/05/05 8:45:32

通りすがりです。

>ブロックサイズ(物理単位)は、OSが管理するクラスタ(論理単位)とは
>完全に無関係に存在するものであり、そこのギャップを埋めるために、
>SSDコントローラーが「HDDに見せかけること(HDDエミュレーション)」を
>している、と書いているんですけどね。

やっと話が見えました。
やはり、知識レベルや前提がかわかないので、理解するまでに時間がかかりますね。

僕の理解では、おっしゃるようにストレージとは、物理的な部分と論理的な部分のギャップ
を埋める機能をドライブが搭載するのが当たり前だと思っており、それを前提にこれまで
のレスを書いてきました。

つまり、僕は、この機能が、何もSSDにだけにあてはまるのではなく、現在のストレージで
は、この機能があって当たり前だと思いましたので、「同じ」と書いたのです。(まあ、考
え方の違いですよね。見方をかえれば、HDDと同じ=HDDエミュレーションですから)

また、その部分については、今後も変わらないであろうとも考えております。
汎用性を考えれば、この方が高いですし、こうしておけば、各社の独自技術が搭載
しやすいく、競争しやすいと思うからです。

ウェアレベリングについてのご指摘がありましたが、この部分に相当する技術は、ファイ
ルシステムやストレージの基本的な動作の仕組みが理解されていれば、ある程度は想
像が着く話であり、気がついたと思いますが、同様にデフラグという言葉も一切使用して
いません。
ファイルを書いたり消したりしていけば、そのデータのエクステントが分散するのは当たり
前の話ですから。

相手のレベルが解らないので、この手の話に触れると、かえってややこしくなりそうなので
触れるのを控えさせていただきました。それですら、表面的とご批判を受ける始末で、理
解するまでにここまで時間がかかりました。やっぱり、人に伝えるというのは難しいと言う
ことをあらためて思う次第です。僕が一般常識を理解していない馬鹿なだけという話もあ
りますが。

この話は、これで終わりにしたいと思います。
馬鹿なやつの馬鹿な話につきあっていただきありがとうございました。
それでは。

投稿: 通りすがり | 2009/05/05 11:03:41

通りすがり さん

うーん…。

>僕の理解では、おっしゃるようにストレージとは、物理的な部分と論理的な部分のギャップ
>を埋める機能をドライブが搭載するのが当たり前だと思っており、それを前提にこれまで
>のレスを書いてきました。

前回のコメントで「まさか?」とは思いましたが…つまり、これはハードディスクにおける「シリンダ」「トラック」「クラスタ」「セクタ」の概念が本格的におわかりでない、ということなんですね…そんな基礎中の基礎で前提が崩れていては話にならないんですけど…。
一応、こちらに図解入りでわかりやすく書かれてます…。
http://www.atmarkit.co.jp/fwin2k/experiments/defragment/defragment_1.html
この展開で、こんなのを提示しなきゃならないとは思いませんでした…とほほ~。

>つまり、僕は、この機能が、何もSSDにだけにあてはまるのではなく、現在のストレージで
>は、この機能があって当たり前だと思いましたので、「同じ」と書いたのです。

それだとセクタもクラスタもなんのためにあるんだか…。
それに、よしんば「HDDも実は同じだった」というならば、SSDに比較して転送速度の遅いHDDだと、プチフリーズどころの話じゃないでしょ…。

>ウェアレベリングについてのご指摘がありましたが、この部分に相当する技術は、ファイ
>ルシステムやストレージの基本的な動作の仕組みが理解されていれば、ある程度は想
>像が着く話であり、気がついたと思いますが、同様にデフラグという言葉も一切使用して
>いません。
>ファイルを書いたり消したりしていけば、そのデータのエクステントが分散するのは当たり
>前の話ですから。

い、いや…その…ウェアレベリングそのものの技術については、本来ファイルシステムは直接は関係なく、ファイルシステムの管理方法とのギャップであれこれ問題が起こる、というスタンスなのですが…。
やっぱり「ウェアレベリング」も正しくご理解いただいてないようで…。
理解もせず想像で言ってたんですか…そうですか…。

>相手のレベルが解らないので、この手の話に触れると、かえってややこしくなりそうなので
>触れるのを控えさせていただきました。

「未熟」とご謙遜していながら、この「上から目線」は一体…。
要はご謙遜のふりしてそうじゃなく、人に対しては「試してやってる」ってところですか…。

それに、「想像」だけであれだけ自信満々に語れるってのは、ある意味スゴイですね…。
なんかまじめに受け答えしたのが完全に無意味でしたね…。

まぁ、もうちょっと(技術&対人スキルの)基礎を固めていただいたほうがよろしいかと…。

…あぁあ~。

投稿: ささもと | 2009/05/06 6:50:57

何を書いても引っ掻き回されてポイ、という印象ですが... 
無理矢理ウエアレベリングをしてまでもフラッシュメモリをHDDとして使用することに利便性があるからSSDが存在するのだと思います。
SSDに限らず現存する殆どのフラッシュメモリはウエアレベリングでもってHDDエミュレーションされている事を見ても明らかでしょう。
そしてフラッシュメモリ自体もHDDエミュレーションに耐えうるように日々改良されている事ですので、もう少し温かい目で見ては如何かと。

…あぁあ~て、日付見たらとっくに終わってた話みたいでスマソ。
サポートのお仕事頑張ってください、人間嫌いにならないで...

投稿: ぷちふりゆーざー | 2009/07/25 6:50:31

ぷちふりゆーざー さん

>何を書いても引っ掻き回されてポイ、という印象ですが... 

いいえ、そんなことないですよ。
正しい認識さえされていれば。

想像や表面的な部分だけで変な思い込みをしていたら、まともな話にならない。それだけのこと。

フラッシュメモリは登場当初からHDDの差し替え候補として期待されてました。問題は価格でしたので、容易に手に入るようになるまで時間がかかってました。
10数年たって、ようやく差し替え候補になるぐらいに価格が下がった、というのが現実。

しかし、改めてやってみたら、ファイルシステムとOSの動作の問題で、起動ドライブにすると、ウェアレベリングとのマッチングが著しく悪いことが表面化してきた、ということ。
読み込みさえ速ければ…と誰もが思っていただけに、ウェアレベリング絡みのHDDエミュレーションとOSの挙動がもっともキーになる、という問題には誰も気付かなかった、がプチフリーズ騒動。
OSやファイルシステム構造の根幹に関わる問題なので、今問題を抱えているユーザーは、症状の緩和はある程度できても、根本的にはどうしようもない、というのが悲しい現実。

私自身は、プチフリーズ問題にぶち当たったことで、HDD→SSDというのは、FDD→HDD以来の大きな変革だと考えるようになりました。
おっしゃるとおり、改良はエミュレーションのみならず転送速度もバリバリ改良されて、いずれインターフェースが追いつかなくなり、単なる差し替えではなくなると考えてます。
チップは高集積化が進んでいますので、起動専用ドライブなら、さほど大容量も必要ありませんし、いちいち「物理的なドライブユニット」として場所を食うような状況ではなくなるはず、と考えてます。
現状は、インターフェースやファイルシステムの開発に時間がかかるため、「単なる差し替え」しかできないのは致し方ないところ。
また、SSDに一時ファイルを置かないという考えが進めば、いずれ、OS用一時ファイル専用のRAMドライブがマザーボードに搭載されるんではないか?とも思ってます。

>サポートのお仕事頑張ってください、人間嫌いにならないで...

SSD問題程度で、表面的な話しかできないようでは訪問サポートの仕事なんてできませんので、ご心配には及びません。
パソコンはあくまで道具であり、訪問サポートの本当の仕事は、現場におられるお客様との対話ですので。

投稿: ささもと | 2009/07/25 10:06:18

コメントを書く




※Spam対策のため、コメント公開時E-Mailは非表示となります。









※当面コメントは承認後の公開となります

« それは世間によくある誤解。iPod shuffle編。 | トップページ | マウスがまともに動かないときに見るべきポイント。 »