Microsoft Build 2023で発表があった開発ドライブ (Dev Drive)が使えるようになりました。さっそく、開発ドライブを作成・設定しました。
開発ドライブ (Dev Drive)とは
開発ドライブ (Dev Drive)は、開発者のワークロードのパフォーマンスを向上させるために使用できる、新しい形式のストレージボリュームです。
クライアント向けWindowsで内蔵ドライブに使われているファイルシステムはNTFSです。しかし、開発ドライブでは、上記の目的を達成するために、開発ドライブのファイルシステムには、ReFS (Resilient File System)が採用されました。
ReFS (Resilient File System)
ReFSは、クライアント向けWindowsでは、開発ドライブで初めて利用されます。しかし、サーバー向けWindowsでは、Windows Server 2012から利用できたファイルシステムです。
ReFSは、スケーラビリティや破損に対する回復性を備えたデータの整合性を提供し、また、パフォーマンスが重視されるワークロードに関する機能も提供されます。
開発ドライブでは、主にパフォーマンスの観点でReFSを採用されたと思われます。
開発ドライブの要件
開発ドライブを利用するためには、PCやストレージの要件があります。
- Windows 11 22H2 ビルド 22621.2338 以降
- 16GB以上のメモリ推奨 (最小8GB)
- 50GBの最小空きディスク領域
要件はそれほど高くはなく、開発用に使用しているPCであればクリアできていると思います。
ストレージの空き領域は、既存のボリュームの空き領域でも、未割り当ての領域(パーティション)でもどちらでもよいです。既存のボリュームの空き領域を使う場合は、VHD仮想ドライブを作成し、その仮想ドライブ上に開発ドライブを作成することになります。
開発ドライブの作成の入り口
従来からの「デスクと管理」アプリからのパーティションの作成とフォーマットでは「開発ドライブ」は作成できません。「ディスクと管理」では、フォーマットできるファイルシステムは、NTFS系とFAT / exFAT系のみで、ReFS系は扱えないからです。
開発ドライブを作成するためには、以下の二つの入り口から可能です。
- 「開発ホーム」アプリ (Dev Home App) → マシン構成 → 開発ドライブを追加する
- Windowsの「設定」→ システム → ストレージ → ストレージの詳細設定 → ディスクとボリューム
前者の開発ホームアプリから開発ドライブを作成するときは、左側のタブから「マシン構成」をタブから、「開発ドライブを追加する」リンクをクリックします。
すると、以下の設定画面が開きます。
この画面は、二つの作成の入り口のうち、後者の「Windowsの「設定」→ システム → ストレージ → ストレージの詳細設定 → ディスクとボリューム」 を開いたのと同じ画面です。
開発ドライブの作成する場所
この画面の「開発ドライブを作成」をクリックします。すると、「Dev Driveの場所を選択する」画面が開きます。
この画面では、3つの選択肢があります。
- VHDを新規作成する
- 既存のボリュームのサイズを変更する
- 未割り当て領域
VHDを新規作成する
「VHDを新規作成する」では、既存のボリューム上に仮想ハードディスク(VHD / VHDXファイル)を作成し、システムにアタッチし、その仮想ハードディスクに開発ドライブを作成します。
既存のボリュームのサイズを変更する
「既存のボリュームのサイズを変更する」では、既存のボリュームの空き領域部分を縮小し、ボリュームサイズを小さくします。その結果、未割り当て領域が生まれます。その未割り当て領域に、開発ドライブを作成します。
未割り当て領域
「未割り当て領域」では、選択した未割り当て領域に開発ドライブを作成します。
次の節から、これらの三つの場所への開発ドライブの作成手順を見ていきます。なお、説明の都合上、「未割り当て領域」、「既存のボリュームのサイズを変更する」、「VHDを新規作成する」の順番で説明します。
「未割り当て領域」に開発ドライブを作成する
未割り当ての領域とは、別の言い方ですると「ディスク上の未割り当てのパーティション」です。ディスク(ストレージ)は、ディスク上にパーティションを作成し、その作成したパーティションを利用するファイルシステムでフォーマットして、ボリュームとして利用します。「未割り当ての領域」ととは、このディスク上のパーティションを作成していない空き領域のことです。
ディスク上のまだ利用されていない領域であり、この未割り当ての領域を新しい開発ドライブに使う場合は、データがなくなるとか、既存のボリュームが影響を受けるとかはありません。
ただし、通常、既存のディスク(ストレージ)には、未割り当ての領域がないことがほとんどです。そのため、この方法は利用しません。
この方法を利用するのは、開発ドライブを作成するにあたり、PCに新しいストレージを追加したときなどです。追加したストレージ全体が未割り当ての領域となります。この場合には、「未割り当ての領域」に開発ドライブを作成することになります。
未割り当ての領域の選択
「未割り当て領域」に開発ドライブを作成するには、「Dev Driveの場所を選択する」画面で、「未割り当ての領域のあるディスク」の中から「未割り当て領域」を選択し、「次へ」ボタンをクリックします。
この画面を作成したときのPCには、未割り当ての領域は一つのみ存在していたので、選択肢には1.11TBの領域のみがあります。もし、PC上に複数のディスクがあり、複数の未割り当ての領域がある場合は、複数表示されます。開発ドライブを作成する領域を選択します。
新しい開発ドライブの設定
未割り当ての領域を選択して、「次へ」進むと、「新しい開発ドライブ」の画面が表示されます。この画面では、新しく作成する開発ドライブの情報を設定します。
設定項目は以下の項目です。
- ラベル(ボリューム ラベル)
- ドライブ文字(ドライブ レーター)
- サイズ (新たに割り当てる領域のサイズ、パーティション サイズ)
サイズは、50 GB (51,200 MB) 以上を設定する必要があります。このサイズは開発ドライブの要件にある最小サイズです。
各項目を設定したら、「形式」ボタンをクリックすると、開発ドライブ用の領域が作成され、ReFS形式でフォーマットされ、開発ドライブが作成されます。
なお、ボタン名の日本語が「形式」となっていますが、英語Formatの名詞としての直訳となっており、翻訳としては適切ではありません。本来は、Formatの動詞としての翻訳である「フォーマットする」や「フォーマット」が適切です。マイクロソフトのアプリ開発のガイドラインでは、何らかの機能を実行するボタンのラベルは、動詞形のラベルを付与するというものがあります。そのため、日本語では動詞であることが明確にするために「フォーマットする」が最適です。
なお、現時点でのWindows 11 23H2 (22631.2715) では、開発ドライブの作成に失敗することがあります。「形式」ボタンをクリックした後、たまに、領域の作成には成功するがReFSのフォーマットに失敗することがあります。開発ドライブの作成に失敗したときは、ドライブのプロパティや「ディスクの管理」でドライブのファイルシステムを確認すると、ファイルシステムがRAWとなっています。この場合は、「ディスクの管理」で、その領域を削除(ボリュームの削除)します。その後、もう一度、開発ドライブの作成の手順を実行します。
「既存のボリュームのサイズを変更」して開発ドライブを作成する
「既存のボリュームのサイズを変更」では、既存のボリューム(CドライブとかDドライブなどのWindowsから見えているドライブ)のサイズを小さくし、空いた領域を使い、開発ドライブ用の新たな領域を作成して、開発ドライブを作成します。
既存のボリュームを小さくするといっても、ボリュームに割り当て済みの領域ではあるが、まだファイルとかを配置していない未使用の領域の部分を使って小さくします。そのため、既存のボリュームの中にあるファイルが消失することはありません。
ただし、既存のボリュームに十分な空き領域がない場合は、この方法は利用できません。
既存のボリュームを小さくし、空き領域(未割り当ての領域)を作成した後は、「「未割り当て領域」に開発ドライブを作成する」の手順と同じになります。
既存のボリュームのサイズを変更
「既存のボリュームのサイズを変更」して開発ドライブを作成するときは、「既存のボリュームのサイズを変更する」を選択して、「次へ」ボタンをクリックします。
「次へ」ボタンをクリックした後、既存のボリュームをどれくらい縮小できるかのチェックをするようで、次の画面が表示されるまでに時間がかかることがあります。
サイズを変更するボリュームを選択する
「既存のボリュームのサイズを変更する」を選択して、「次へ」ボタンをクリックすると、「サイズを変更するボリュームを選択する」画面が表示されます。
この画面では、サイズ変更できる(サイズ縮小できる)ボリュームの一覧が表示されます。
例として挙げた上記の画面では、3つのボリュームが選択肢として表示されています。
ドライブのサイズを変更する
ここでは、Eドライブを選択して「次へ」ボタンをクリックします。すると、「ドライブのサイズを変更する」画面が表示されます。
この画面では、サイズを縮小するドライブの新しいサイズをいくつにするかを設定します。最小サイズは、現在のドライブの使用領域のサイズと同じか大きいサイズとなります。
なぜなら、ボリュームのサイズを縮小するときには、ボリュームに割り当てられている領域の後ろのほうにあるファイルは、領域の前のほうに移動します。このとき一部の種類のファイルは移動できません。移動できないファイルがあると、そのファイルの領域の位置より小さくすることはできません。その結果、最小サイズは、ドライブにあるファイルの合計サイズより大きい値になります。
既存のボリュームは最小サイズまで小さくすることはできます。しかし、サイズを縮小するドライブにも、空き領域を残しておく必要があります。そうしないと、そのボリュームには、今後新しいファイルを保存できなくなってしまいます。そのため、今後も新しいファイルを保存することも考慮して、適度な空き容量を確保したサイズを設定する必要があります。
縮小後のサイズを設定したら、「次へ」ボタンをクリックします。すると、そのボリュームを縮小する処理が実行されます。この処理は、そのボリュームの使用状況により、長い時間がかかることもあります。
ボリュームを縮小する処理が終わった後は、縮小したサイズは、「未割り当ての領域」となります。このあとの開発ドライブを作成する手順は、すでに説明済みの「「未割り当て領域」に開発ドライブを作成する」の手順と同じです。そのため、この後の手順の説明は省略します。
「VHDを新規作成」して開発ドライブを作成する
「VHDを新規作成」では、既存のボリューム(CドライブとかDドライブなどのWindowsから見えているドライブ)の中に、仮想ハードディスク ファイルを作成し、そのファイルを仮想ハードディスクとしてシステムにアタッチします。そして、その仮想ハードディスクの領域を使い、開発ドライブ用の新たな領域を作成して、開発ドライブを作成します。
仮想ハードディスクのファイルフォーマットは、VHD形式とVHDX形式が利用できます。
既存のボリューム上に仮想ハードディスクをファイルとして作成するため、システム上に未割り当ての領域が存在しなくても、開発ドライブを作成できます。
ただし、ハードディスクが仮想化されるため、ストレージへのアクセスに仮想化処理が追加されることになります。そのため、物理的な未割り当ての領域に仮想ドライブを作成するよりも、パフォーマンス面では劣ると思われます。
ただ、仮想化されたハードディスクであるため、
- ボリュームを作成した後でも領域の拡張や縮小が容易
- 未使用領域は実際に使われるまで仮想ファイルに実体化されないようにしボリュームの使用領域の節約が可能
- 仮想ハードディスクファイルイメージを別のドライブへの移動が容易
などの利点があります。
仮想ハードディスク ファイルを使用する場合は、仮想ハードディスク ファイルをシステムにアタッチしたあとは、物理的なストレージをシステムに追加したときと同じ状態です。そのため、VHDファイルを作成してアタッチした後の手順は、「「未割り当て領域」に開発ドライブを作成する」の手順と同じになります。
VHDを新規作成
「VHDを新規作成」して開発ドライブを作成するときは、「VHD を新規作成する」を選択して、「次へ」ボタンをクリックします。
仮想ハードディスクの作成とアタッチ
「VHDを新規作成する」を選択して、「次へ」ボタンをクリックすると、「仮想ハードディスクの作成とアタッチ」画面が表示されます。
この画面では、作成する仮想ハードディスクの設定をします。
- 仮想ハードディスク名 (仮想ハードディスクのファイル名)
- 場所 (仮想ハードディスク ファイルを作成する場所)
- 仮想ハードディスク フォーマット (仮想ハードディスクの形式、VHDまたはVHDX)
- 仮想ハードディスクの種類 (固定サイズ、動的に拡張)
上記の項目を設定したら、「作成」ボタンをクリックすると、仮想ハードディスクが作成されシステムにアタッチされます。
ディスクの初期化
仮想ハードディスクを作成した直後は、システムから見えるディスクとしては全く使われていない状態です。そのためディスクの初期化が必要となります。これは、パーディションの構成をレガシーの仕組み(MBR、マスターブートレコード)か、現行の仕組み(GPT、GUIDパーティション テーブル)のどちらを使うかを決めるだけです。
現在では、内蔵用ディスクの場合は特別な理由がない限りはGPTを選択しておけば問題ありません。
ディスクの初期化が終わった後は、作成した仮想ハードディスクは、すべての領域が「未割り当ての領域」となります。このあとの開発ドライブを作成する手順は、すでに説明済みの「「未割り当て領域」に開発ドライブを作成する」の手順と同じです。そのため、この後の手順の説明は省略します。
今回の投稿では開発ドライブを作成する手順を説明しました。しかし、開発ドライブを有効に利用するためには、開発環境側の設定も必要です。次回は、開発環境の設定について説明したいと思います。
“開発ドライブ(Dev Drive) ♯1” への7件の返信