Loading...

We've detected that your browser language is Chinese. Would you like to visit our Chinese website? [ Dismiss ]
By: Emma

スペース回収とは何か

スペース回収とは、システムが使用しなくなったものの解放されていないストレージ領域を取り戻す処理を指します。仮想化やエンタープライズストレージ環境、特にVMware、シンプルプロビジョニング、SAN、SSD環境では、システムが削除済みまたは未使用のブロックを検知し、ストレージプールへ返却する一連の作業を意味します。

ファイルやデータベースレコードを削除しただけでは物理的なストレージが解放されない場合が多く、システムはディスク上の容量を縮小せず、単に領域を「空き」としてマークするだけです。

例えば100GBのデータベースに実データが60GBしか格納されていなくても、ディスク上では100GB全容量を占有し続けます。本来のスペース回収はこれを一歩進め、データを集約しコンテナ容量を縮小することで、未使用領域をOSまたはストレージプールに返却する処理です。

OS上でのスペース回収方法

ストレージ管理はローカルマシンから着手するのが基本です。デスクトップでもサーバーでも、標準搭載ツールと手動クリーンアップを組み合わせることで、Windows、macOS、Linuxのディスク空き容量を大幅に確保できます。

Windowsのスペース回収

Windows10、Windows11どちらの環境でも、以下の標準ツールで大半の容量確保作業に対応可能です。

  1. 基本的な手法
  • ストレージセンスを利用:設定>システム>ストレージを開き、ストレージセンスのトグルをオンに切り替えます。Windowsが自動的に一時ファイルを削除し、定期的にごみ箱を空にします。

Windowsストレージセンスによるスペース回収

  • ディスククリーンアップを実行:タスクバーから「ディスククリーンアップ」を検索し、「システムファイルのクリーンアップ」を選択します。古いWindows更新ファイル、配信最適化ファイル、システムログを削除できます。

Windowsディスククリーンアップ

  • 未使用アプリをアンインストール:設定>アプリを開き、サイズ順に並べ替え、不要な大容量ソフトを削除します。

未使用アプリのアンインストール

  • 一時ファイルを削除:ストレージ画面内の「一時ファイル」をクリックし、Windows更新クリーンアップ、インターネット一時ファイルなどの項目にチェックを入れ、「ファイルの削除」を実行します。

一時ファイル削除画面

  1. 上級・手動クリーンアップ
  • ごみ箱を空にする:デスクトップのごみ箱アイコンを右クリックし「ごみ箱を空にする」を選択。削除ファイルはこの操作を実施するまでディスク上に残り続けます。
  • 手動で一時フォルダを消去:Win+Rキーを押下し、%temp%と入力しEnterキーを押します。フォルダ内のファイルを全選択し削除します。

手動一時フォルダ削除

  • 休止状態を無効化:休止状態機能を使用しない場合は、管理者権限でコマンドプロンプトを起動しpowercfg -h offを実行します。数GBに達するhiberfil.sysファイルが削除され容量を確保できます。
  1. 推奨ツール
  • ストレージセンス:標準搭載、自動実行、事前設定不要
  • ディスククリーンアップ:従来型標準ツール、システム領域を深くクリーンアップ可能
  • WinDirStat:無料オープンソースのディスク可視化ツール、大容量フォルダを一目で把握可能

Macのスペース回収

macOSにはストレージ使用状況確認や不要データのオフロードに対応した標準ツールが備わっています。

  1. 基本的な手法
  • ストレージ推奨事項を確認:システム設定>一般>ストレージを開くと容量消費内訳が一覧表示され、ワンクリックでクリーンアップを実施できます。
  • ストレージ最適化を有効化:iCloudの機能で、古いファイルをクラウドへ移行し、必要な時だけローカルに保持します。
  • 古いデバイスバックアップを削除:Finderを開きiPhoneまたはiPadを選択し「バックアップを管理」をクリック。古いバックアップは数十GBの容量を消費している場合が多いです。
  1. 上級クリーンアップ
  • アプリキャッシュを消去:Finder上でCmd+Shift+Gを押下し~/Library/Cachesへ移動、不要なアプリのフォルダを削除します。
  • 大容量フォルダを圧縮:フォルダを右クリックし「圧縮」を選択しZipアーカイブを作成。データを保管しつつ容量を削減したい場合に有効です。
  • 開発ツールの不要ファイルを削除:Xcodeを使用する場合は古い派生データやシミュレータファイルを消去。これらは隠れた容量消費の大きな要因となります。
  1. 推奨ツール
  • ストレージ管理:macOS標準公式ユーティリティ、システム設定に内蔵
  • GrandPerspective:無料オープンソース、ファイルのツリーマップを可視化

Linuxのスペース回収

Linux環境では簡単なコマンドを実行するだけで、少ない手間で大量のディスク容量を回収できます。

  1. まず容量消費箇所を確認
  • df -h:全マウントファイルシステムのディスク使用量を見やすい単位で表示
  • du -sh /*:最上位ディレクトリごとの合計容量を表示
  • ncdu:ターミナル上で操作可能な対話型ディスク分析ツール、パッケージマネージャーからインストール可能
  1. 主要なクリーンアップ手法
  • パッケージキャッシュのクリーン:
    • Debian/Ubuntu:sudo apt clean && sudo apt autoremove
    • RHEL/Fedora:sudo dnf clean all
    • Arch:sudo pacman -Sc
  • ログファイルの容量制限:システムジャーナルが肥大化した場合、sudo journalctl --vacuum-size=200Mを実行し容量を削減します。
  • 大容量ファイルを検索:find / -type f -size +500Mを実行し、500MB超えの単独ファイルを特定します。
  1. 推奨ツール
  • ncdu:安定した対話型ターミナルディスク分析ツール
  • BleachBit:オープンソースGUIクリーナー、クロスプラットフォーム対応
  • fdupes:重複ファイルの検索・削除用コマンドラインツール

データベースのスペース回収方法

データベース上でデータを削除しても、ディスク上のファイルサイズは自動的に縮小されません。大半のデータベースエンジンは削除行の跡に空きギャップを内部に保持し、OSへ領域を返却しない仕組みになっています。単純なDELETE文だけでは容量回収ができず、追加の処理が必要です。

mysql_workbench_editor_general

画像提供:MySQL

MySQLのスペース回収

InnoDBエンジン使用時、MySQLはDELETE実行後もデータファイル(.ibdまたはibdata1)を縮小しません。空き領域は内部で再利用可能としてマークされるだけで、ディスク上の割り当て容量は維持されます。

  • テーブルの再構築:OPTIMIZE TABLE テーブル名を実行しテーブルを再作成、断片化した空き領域を回収します。
備考:実行中はテーブルがロックされるため、定時メンテナンス時間帯に実施してください。
  • 1テーブル1ファイルを有効化:innodb_file_per_tableを有効に設定することで、各テーブルに独立した.ibdファイルが割り当てられ、テーブルの切り捨て・削除時のスペース回収が容易になります。
  • バイナリログのクリーン:管理を怠るとバイナリログが肥大化するため、PURGE BINARY LOGS BEFORE '日付'でレプリケーションや復旧に不要なログを削除します。
  • 最適化前にデータアーカイブ: SHOW TABLE STATUSで大容量テーブルを特定し、履歴データをコールドストレージへ移行してから最適化を実行します。これにより最適化の効率が高まり、稼働中データをスリムに保てます。アーカイブ前には、作業中の障害に備えてMySQLデータベースのバックアップを確実に取得してください。

PostgreSQLのスペース回収

PostgreSQLはMVCC(複数バージョン同時実行制御)という並行処理モデルを採用しています。行の更新・削除後、古いデータは「デッドタプル」としてディスク上に残存し、明示的なクリーンアップを実行するまで消去されません。

postgresql

    • VACUUM:VACUUMを実行するとデッドタプルが消去され、同一テーブル内で領域を再利用可能にします。OSへ容量を返却する処理は行われません。
    • VACUUM FULL:VACUUM FULLを実行するとテーブルファイル内の空きギャップを除去し再書き込み、実際にディスク上のファイルサイズを縮小します。
備考:本処理実行時にテーブルへ排他ロックがかかり、完了までテーブルにアクセスできなくなるため、メンテナンス時間帯での実施を推奨します。
  • ANALYZE:大規模クリーンアップ完了後、ANALYZEを実行しクエリプランナーの統計情報を更新します。更新後のデータに対し、最適なクエリ実行計画を作成できるようになります。
  • 自動VACUUMのチューニング:autovacuum_vacuum_scale_factorの設定値を確認してください。大容量テーブルの場合、デフォルト設定ではクリーンアップの実行頻度が不足し、デッドタプルが蓄積し続ける恐れがあります。

エンタープライズデータベース(SQL Server / Oracle)

SQL Server、Oracleといった商用データベースも共通の原理が適用され、データ削除だけではディスク容量が解放されません。ただしプラットフォームごとに使用するツールと手順は異なります。

  • SQL Server:DBCC SHRINKFILEを使用しデータベースファイルのサイズを縮小します。ただし頻繁な実行はインデックスの断片化を引き起こしクエリパフォーマンスを低下させるため、乱用を避けてください。容量膨張対策としてはまずインデックスの再構築を実施するのが望ましいです。
  • Oracle:DBMS_SPACE.UNUSED_SPACEで容量の無駄な箇所を特定し、ALTER TABLE ... MOVEに続けてALTER INDEX ... REBUILDを実行しデータを集約、セグメントサイズを縮小します。
  • 回収前に必ずアーカイブを実施:明確なデータ保存ポリシーを定めずに削除・スペース回収を実行してはいけません。コンプライアンス要件を満たすため、先にデータアーカイブを行ってからクリーンアップに進みます。

クラウドストレージのスペース回収方法

クラウド環境ではデータ保存量に応じてストレージ費用が増加します。手動削除だけではコスト制御が不十分なため、請求額が膨らむ前にデータの移行、期限切れ削除、階層別保管を自動化するポリシーを設定する必要があります。

AWS S3、Azure Blob、Google Cloudストレージ

主要クラウド3社はいずれもライフサイクル管理機能を提供し、各ストレージ階層の保管期間と自動削除ルールを設定可能です。

  • ライフサイクルポリシーを設定:高コストなホットストレージから低コストなコールドストレージへデータを自動移行、または指定期間経過後に完全削除するルールを作成します。
    • AWS S3:S3ライフサイクルルールを活用し、30日経過後にオブジェクトをS3 Glacierへ移行、1年経過後に期限切れ削除を設定可能。
    • Azure Blob:ライフサイクル管理ポリシーを適用し、最終更新日を基準にBLOBをアーカイブ階層へ移行または削除します。Azure SQLデータベースの保護も併用する場合は、Azureデータベースバックアップの設定とストレージポリシーを組み合わせてください。
    • Google Cloudストレージ:オブジェクトライフサイクル管理を設定し、ストレージクラスの自動移行を制御します。
  • 古いオブジェクトのクリーンアップ:バケット内の古いバックアップ、過去ログ、完了していないマルチパートアップロードファイルを定期的にスキャンし削除します。見落としやすい項目ですが、容量を大幅に消費する要因となります。
  • バージョニング機能を適切に管理:バージョニングは誤削除防止に有効ですが、データ更新のたびに複製が作成され容量を圧迫します。指定期間経過後に古いバージョンを自動削除するポリシーを設定し容量を抑制します。
  • ストレージ分析ツールを活用:AWS Cost Explorer、Azureストレージ分析、GCPクラウドモニタリングなどのツールを使用し、容量を大量消費しているバケット・コンテナを特定、優先的にクリーンアップする対象を把握できます。
  • アップロード前に圧縮:CSV、JSON、ログなどテキスト主体のデータはGzipまたはZstandardで圧縮してからアップロードします。ストレージ使用量とファイル取得時の転送コストを両方削減できます。

効率的なスペース回収のベストプラクティス

誤った手順でストレージクリーンアップを実施するとデータ損失やパフォーマンス低下を引き起こす可能性があります。以下の運用ルールを守ることで安全かつ効率的に容量を回収できます。

  • まずゴミ箱を空にする:削除ファイルはWindowsのごみ箱、macOS/Linuxのゴミ箱を空にするまでディスク上に残存します。単純な手順ですが、この作業を実施しない限り容量は解放されません。
  • 削除だけでは容量が解放されないことを理解:データベースのDELETE文を実行しただけでは物理ディスク容量は解放されません。PostgreSQLではVACUUM FULL、MySQLではOPTIMIZE TABLEを追加実行し、OSへ領域を返却する必要があります。
  • クラウドストレージを四半期ごとに監査:古いバックアップ、重複バージョン、孤立ファイルが知らぬ間に蓄積しコストを押し上げるため、定期的にバケットを点検します。
  • 定例クリーンアップスケジュールを作成:OSのクリーンアップは月1回、データベース最適化は四半期1回実施、クラウドのデータ移行はライフサイクルポリシーで自動処理します。
  • 削除前にアーカイブを実施:アクセス頻度は低いがコンプライアンス・業務上必要なデータは、完全削除せずコールドストレージへ移行または圧縮保管します。
  • クリーンアップ前にバックアップを取得:データベースファイルの縮小、大容量システムログの消去といった負荷の高い処理を実行する前に、完全バックアップを作成してください。スペース回収処理は取り消しが困難な作業です。

スペース回収実施前にデータ保護を確認する

本ガイドで紹介するデータベースファイルの縮小、システムログの消去、クラウドオブジェクトの削除といったクリーンアップ作業は、一度実行すると元に戻すことが難しい場合が大半です。いずれの処理を実施する前に、データのバックアップが完了していることを確認する必要があります。

単独端末や小規模環境では手動バックアップで対応可能です。しかし複数OS、データベース、クラウド基盤が混在するエンタープライズ環境では、各レイヤーごとに手動でバックアップ管理するのは現実的ではありません。この課題に対応する専用ソリューションがi2Backupです。

i2Backupの主な機能

i2Backupは本ガイドで解説する物理サーバー、仮想マシン、データベース、クラウドストレージまで多種多様なワークロードを一括保護するエンタープライズ向けバックアッププラットフォームです。

  • 単一コンソールによるクロスプラットフォーム対応:Windows、Linux、VMware、Hyper-V、Oracle、MySQL、SQL Server、PostgreSQLなど主要データベースを一括サポート。環境ごとに個別のバックアップスケジュールを管理する必要がなく、多種混在システムのクリーンアップに伴う複雑さを解消します。
  • 自動保存期間管理とスマートクリーンアップ:データベースがVACUUM FULLOPTIMIZE TABLEで手動容量回収を必要とするのと同様、バックアップ用ストレージも積極的な管理が不可欠です。i2Backupでは保存期間ルールを定義するだけで古いバックアップが自動削除され、手動操作が不要になります。
  • ほぼゼロRPOのデータベースバックアップ:スペース回収対象のデータベースに対し、i2Backupはリドログ・アーカイブログを継続的に取得し、任意時点へのポイントインタイムリカバリを実現します。正確な復旧ポイントが確保されているため、安心してOPTIMIZE TABLEDBCC SHRINKFILEを実行できます。
  • 複数保存先へのバックアップ:ローカルディスク、NAS、テープライブラリ、クラウドストレージに対応。クラウドストレージのライフサイクルポリシーと同様、バックアップデータ自身に多階層保管の柔軟性を提供します。
  • 仮想マシン瞬時リカバリ:仮想マシンのクリーンアップ時に障害が発生した場合、i2BackupはVMバックアップをリモートマウントすることでフル復旧処理を省略し、ほぼ瞬時に復旧可能。ダウンタイムを最小限に抑えます。

スペース回収はストレージ管理に不可欠な作業ですが、特にデータベースやシステム層では障害リスクが伴います。信頼できるバックアップ環境があれば、万が一トラブルが発生しても、復旧に数日を要することなく数分で対応可能です。

60日間無料トライアル

よくある質問

Q1:スペース回収とは何ですか

スペース回収とは、データ削除後もディスク上に割り当てられたままのストレージ領域を取り戻す処理のことです。ファイルやデータベースレコードを削除しただけでは容量が解放されないため、ゴミ箱を空にする、VACUUM FULLを実行する、クラウドライフサイクルポリシーを設定するといった追加作業で完全に領域を返却する必要があります。

Q2:費用をかけずにPCのディスク容量を確保する方法は

全て標準搭載ツールで対応可能です。Windowsはストレージセンスまたはディスククリーンアップ、macOSはシステム設定>一般>ストレージ、Linuxはsudo apt clean && sudo apt autoremoveから着手できます。有償ソフトは不要です。

Q3:ディスククリーンアップの実行は推奨されますか

はい。一時ファイル、古い更新ファイル、不要なシステムログを安全に削除できます。「システムファイルのクリーンアップ」を選択するとより深くクリーンアップ可能です。ただしOS層のみ対応するため、データベースやクラウドストレージは別途対応が必要です。

容量確保のために優先的に削除すべきデータは何ですか

まず一時ファイル、古いシステム更新ファイル、未使用アプリを削除しましょう。容量が大きく、リスクも低いため最も手軽です。データベースの場合は古いデータをアーカイブしてから最適化、クラウドストレージでは古いバックアップと未完了アップロードファイルを優先的に消去します。

まとめ

ストレージのスペース回収は複数レイヤーに跨る一連の作業です。ゴミ箱を空にするだけで基礎的な容量確保は可能ですが、本ガイドで解説した通り、データベースファイル、クラウドバケット、システムログはそれぞれ専用のクリーンアップ手法が必要です。

単発の対応ではなく定例業務に組み込むことが重要です。クラウドストレージにはライフサイクルポリシーを設定、データベース最適化は四半期ごとにスケジュール、OSクリーンアップは毎月実施します。また、大規模なスペース回収作業を実施する前には必ずデータバックアップを取得してください。

複数プラットフォームに跨る複雑な環境を運用する企業には、Info2softのi2Backupが、あらゆる規模のクリーンアップ作業を安全に実行するための自動保護レイヤーを提供します。

概要は準備中です

関連記事

SQL Server バックアップ圧縮を有効にする 4 つの方法
データベースが肥大化するにつれ、従来のバックアップは処理が遅くなり、ファイルサイズが増大し、管理が困難になります。本ガイドでは、ストレージコストの削減とバックアップパフォーマンスの高速化を目的とし、SQL Serverバックアップ圧縮の各種手法、メリット、チューニング手法を解説します。
記事を読む
Azure SQL Databaseのバックアップ方法:手法、リストア手順、ベストプラクティス
データ損失、誤った削除、地域的な障害はいつでも発生する可能性があります。本ガイドではAzure SQLデータベースのバックアップオプションを解説し、あらゆるシナリオで安全にバックアップとリストアを実行する方法を紹介します。
記事を読む
SQLテーブルデータをExcelにエクスポートする方法:ステップバイステップガイド
SQLテーブルデータを迅速かつ正確にExcelへエクスポートする必要がありますか。本ガイドではSSMSからPythonまで、4つの実用的な方法を解説しており、業務フローに最適な手法を選択できます。
記事を読む
SQLダンプと物理ファイルからMySQLデータベースを復元する方法
障害発生時や環境移行時に、バックアップファイルからMySQLデータベースを復元する作業は頻繁に行われます。本ガイドではSQLダンプ、圧縮バックアップ、物理データファイルからのデータベース復元手順と、重要な検証工程を解説します。
記事を読む
目次:
最新情報を購読
最新のインサイト、ニュース、限定コンテンツをお届けします。いつでも配信解除が可能です。
購読する
ビジネスデータのセキュリティ強化を始めませんか?
60日間の無料トライアルまたはデモで、Info2softが企業データをどのように保護するかをご確認ください。
フォームにご記入の上、送信してください。担当者より追ってご連絡いたします。
このフォームを送信することにより、 プライバシー通知を読み、同意したことを確認します。
{{ isSubmitting ? '送信中...' : '送信する' }}