Elsaの技術日記(徒然なるままに)

主に自分で作ったアプリとかの報告・日記を記載

MENU

パーティション分割の理由を調べる

突然ですが、、、
パーティションって地味に重要な機能だと思うんですよね。

ただ、なぜ重要?別にディレクトリ分けて管理しとけばよくない??
的なこと言われた時に返答できるかな??と思い、メリット・デメリットをまとめておこうかな?と思いました。

ソフトはかじったことはあるけどOSとか良くわかっていない人向けにまとめられればな!!と思います。



パーティションとは

簡単に言うと「仕切り」です。
パーティションを作成することでHDDやSSDなどのストレージに仕切り(パーティション)が出来ます。
これにより、1つのストレージに対してあたかも複数のストレージがあるかのように扱うことが出来ます。
f:id:Elsammit:20201123164056p:plain

注意しなければいけないこととして、一度設定してからは基本的に変更できない!!という点です。
やれないことはないのですが、、、データを退避させたりデータを移動させたりしないといけないですし、、、かなり手間です!!
データ破損の可能性もあるため途中での変更は推奨されていないです。

なので、パーティション設計は計画性をもって設計する必要があります!!

■メリット

実際のところ、ディレクトリ分けすれば済む話では??
という疑問はあるかと思います。

実際、パーティションを作成しなくてもシステム自体は動きますしわざわざ分けておかなくてもよいです。
ただ、分けておくことによる強力なメリットがありますのでまとめておきます。

①システム(アプリ)領域とデータ領域を分離させること出来る
明確に分けておくことで、ユーザデータを保存した状態でシステムリカバリやアップデートなどをシステム(アプリ)領域だけを初期化することが出来ます。

分けておかなくてもやれないことはないですが、、、
失敗時のリカバリやそもそも動かなくなってしまったらデータが消失してしまう恐れがあります。
ユーザデータはとても重要なのでそんな簡単に消えてしまっては問題です。。。

後、ディレクトリ管理だとディレクトリ内のファイル削除・書き込みを繰り返さないといけないですが、パーティションで分かれていれば特定パーティションだけをフォーマット等で削除してからアプリを書き込むことや、データ領域をごそっととってくればデータを一度に取ってくることも可能です。

②データ管理が容易
パーティション作成により各領域の要領管理が管理できます。
すなわち!!ログデータやアプリの一時生成ファイルとユーザデータを別パーティションで管理することで、例えば、ログデータや一時生成ファイルが肥大してしまいユーザデータが保存できない状況を避けることが出来ます。

スワップ領域用意が可能
Linux限定ですが、swap領域を作ることが出来ます。
このswap領域はメインメモリが不足している時にメインメモリとして使用できる領域のことです。
メインメモリが小さいデバイスだと特に重宝する領域になります。

ただし、大きくしすぎてもパフォーマンス向上はしないので注意が必要です。

■デメリット

(1)パーティションの使用率に偏りが発生する場合がある
パーティション設計を見誤った場合に、あるパーティションは使用率が高いが、あるパーティションがガラガラになる可能性があります。
完全な見積もりミスなので、ちゃんと設計しましょう、ということで。

(2)後で変更が利かない(利きづらい)
先ほど記載した通り、ディレクトリ管理のように後で修正・作成することがかなり難しくなります。
なので、初回の設計がとても重要になります。
こちらに付随して融通が利かないのもデメリットになりますかね??

■最後に

パーティションは初回設計が重要かつ結構大変ですが、一度設計出来ればすごく便利に管理が出来るので使いこなせるとよい機能ですね!!
あまりソフトに詳しくない人にも分かりやすく書けているかな??