ディスクパーティションのサイズを適切に書き込むことができないファイルシステムで、その結果、十分ではないとして、Linuxシステムを使用するプロセスでは、時々、このような遭遇。また、システムのスワップパーティションが十分ではない、小さすぎるか、他の一連の問題につながった条件を満たしていないです。私たちのシステムは、ディスクスペースの黒字、そんなに簡単に取り付けられている場合、既存のディスクパーティション、フォーマットに直接描画し、マウントは仕事を取得します。しかし、時には制限条件、ディスクスペースのない余剰がない、どのようにそれを行うには?私たちは、他のパーティションの比較的大きなスペースがあるかどうかを確認するために、既存のシステムにすることができ、後者の部分を指摘し、まだゾーニングシステムを変更するには、通常の使用には影響しません。このような場合は、ディスクスペースの間接的な拡大を達成することができます。
1は、私たちはディスクパーティション上の大きなファイルを作成する必要があることは余剰スペースがあり、ファイルのサイズは、実際のニーズとは別に設定するパーティション領域の実際の大きさに応じて決定されます。大容量のファイルを作成し、次の3つのコマンドを使用することができます。
1.1 DD
ddコマンドであろう任意の大きなファイルを作成し、ddはデバイスドライバの頭字語で、デバイスは、ファイルの内容を読み取るために使用され、指定された場所にそのままコピーすることができます。だから、DD本質上のファイルコピーのコピーです、
これは、各データブロックを書き込むためにあなたを強制し、ファイルの内容を初期化しますが、初期化はI / O時間がかかるので、ddコマンド速度が比較的遅い使用して大きなファイルを作成します。次のように大容量のファイルを作成するには、ddコマンドを使用します:
DD = /ホーム/のdisk0のBS = 2Gカウント= 1の=は/ dev /ゼロであれば
このコマンドには、次の4つのオプションを使用しています/ホームルートディレクトリの下のdisk0と呼ばれる空のファイルを作成します。
=ファイル名があれば:入力ファイル名またはデバイス名を指定し、省略された場合、「IF =ファイル名」、それはそれは、標準入力から読み込みを示しています。
の=ファイル名:出力ファイル名またはデバイス名、省略された場合「のファイル名=」、それが標準出力に示します。
BS:単一ファイルのブロック指定ブロックサイズ。
カウント:あなたが作成するファイルの数を。
1.2 fallocate
fallocate機能は、代わりに空のファイルを生成するので、ディスクのセクターに割り当てられたfallocate空間が連続している、それは読み取りとその後の書き込みディスクのオーバーヘッドのファイルを求めて減少し、ファイルのための事前に割り当てられた物理的なスペースです。
直接かつ急速なスペースが、戦争は=ディスクスペースの使用と一緒に確保するように、それほどのスペースを占有しますが、そのディスク領域不足のセグメントを表示されない「ふり」としてファイルを空にしたくありません。fallocateので、
標準インタフェースをPOSIXない、いないすべてのファイルシステムは、現在主流のext4でサポートされており、XFSが可能です。
fallocate -l 20G /ホーム/のdisk00
-l: - 長さ、長さ分布、指定されたファイル、すなわち、ファイルのサイズ。
disk00:ファイルアロケーションの名前
1.3 TRUNCATE
ファイルの終了位置をのlseekと切り捨てるであるが、疎ファイルであり、固定された位置及び発生空のファイル「にまで及びます」。文書は、実際のディスクスペースを取りませんが、論理的にそれはとても大きく見えます。
あなたが希望のサイズが割り当てられ、その論理サイズを、表示するls -lコマンドを使用します。占有するディスクスペースの実際のサイズを確認することができデュコマンドを使用します。満たされている「\ 0」であるファイルの真ん中を見てOD -cコマンドを使用します。
-s 10G /ホーム/ disk000を切り捨てます
-s:ファイルのサイズを指定します。
ファイルシステムとマウントするには、まず大型ファイルで得られた2
ファイルサイズは、このような2G以下のように割り当てられるようにされていない場合は、ファイルサイズが非常に大きい場合、ファイルは、コマンドルックスを切り捨てる生成されていないため、これらのことから、私たちは、好ましくのddコマンド、fallocateは、使用することができ
、我々はそれを選択しないようにしてください必要はありません場合は、とても大きいです。
例えば、我々はDDファイルを使用するか、fallocate 1Gサイズを作成:
ddは-if = = /ホーム/のdisk00のは/ dev / ZERO BS = 1024 COUNT = 1000000
1G /ホーム/のdisk00 -l fallocate
2.1一般的な拡張ファイル・システム・スペース
2.1.1フォーマット
一例として、ext4ファイルシステムとしてフォーマットで
mkfs.ext4 /ホーム/のdisk00後----コマンドが実行され、システムは、直接の行に継続することを確認するために「y」を入力してください「のdisk00は、ブロックスペシャルデバイスではありません」プロンプトが表示されます。
2.1.2ファイルシステムをマウントします
disk00はブロックデバイスではありませんので、ファイルシステムをマウントすることは、直接リンクされたとしてフォーマット通常のディスクパーティションを、好きではないとき、そう、私たちは、疑似デバイスのループを使用する必要があります。マウントループを実行する前に、我々は必要
ループバックデバイスシステム、およびすでに使用されている人のことを確認します。
システムは、ループバックデバイスを持っていることを確認します。
LS -lは/ dev /ループ*
ループバックがすでに使用されていることを確認します。
猫の/ proc /マウント
上記の二つの項目を確認した後、それは以下のハングアップするために実行することができます。
マウント-oループ=は/ dev / loop0 /ホーム/のdisk00は/ opt / backup_DB
-oループ=:ループモードを使用することは、ファイルシステムのディスク・パーティションとして使用されるか、またはハングアップされています
関係2.1.3の損失後のマウント関係は、システムが再起動される防ぐために、書き込みに/ etc / fstabにマウントされます。
エコー "/ホーム/のdisk00は/ opt / backup_DB ext4のデフォルト、ループ0 0" >>の/ etc / fstabに
2.2取付スワップパーティション
2.2.1フォーマット、スワップファイルにそれを回します
mkswap /ホーム/のdisk00
2.2.2このスワップファイルを有効にします
swaponを/ホーム/のdisk00
2.2.3書き込みの/ etc / fstabに、自動的にシステムの再起動をマウント
エコー "/ホーム/のdisk00スワップスワップデフォルト0 0" >>の/ etc / fstabに
図3に示すように、動作例
私は例として、実際の動作中のプロジェクトを持っている下:
/ homeパーティションにインストールされ私たちのMySQLデータベース、3.5Tの大きさ、我々は磁気配列を接続していないため、別途バックアップサーバは存在しないが、これだけのデータベースのバックアップは、ローカルに保存され、元のバックアップを追跡します
データは、同じ地区に配置することはできません、我々は/ opt以外のパーティションにバックアップを入れて、パーティションサイズは50Gです。私たちの図書館は現在、12Gの大きさで、データの量はおおよそ隔週、350-400M間の毎日を生成し、データ量が1Gが増加します。バックアップポリシー
少しは、毎週の完全バックアップである日曜日に火曜日と(これは、リカバリを容易にすることを意図している)月曜日に完全増分バックアップに基づいています。バックアップは、3週間を保持するために、フルバックアップの保存方針で、前にすべての機器を削除し、次の月曜日、毎週の増分
前/次ホーム/ old_DB_backupにパッケージ化され圧縮された全体の動きの調製。毎週土曜日は/ optフットプリントはすでに90%近くに達していたので、我々は/ OPTが一時的に増分バックアップを格納考えるときに、データの量は、おそらく、増加し続けています
ディレクトリは、次のようにプログラムが動作し、/ opt以外の圧力空間のパーティションを縮小、拡大のための別のパーティションをマウントします。
/ homeディレクトリパーティションが非常に大きいので3.1は、その分割されたオブジェクトとして/ homeパーティションを選択します。空間拡散30G与えられ、データ量のその後の増加を考慮すると:
fallocate -l 30G /ホーム/ old_DB_backup / backup_disk / disk0_in
3.2当社のファイルシステムはext4のですが、それはext4のようにフォーマットのデータファイルを変更します
mkfs.ext4 /ホーム/ old_DB_backup / backup_disk / disk0_in
3.3増分バックアップディレクトリに追加する独立したスペースをマウント
マウント-oループ=は/ dev / loop0 /ホーム/ old_DB_backup / backup_disk / disk0_inは/ opt / DB_backup / incremental_backup
3.4マウント関係は、/ etc / fstabに書きます
エコー "/ホーム/ old_DB_backup / backup_disk / disk0_inは/ opt / DB_backup / incremental_backup ext4のデフォルト、ループ、0 0" >>の/ etc / fstabに