あるファイルシステムスペースを別のファイルシステムに追加したいと思います。
/dev/cciss/c0d0p2 152358920 143606116 888588 100% /db2
/dev/cciss/c0d0p15 203899764 50767420 142607764 27% /db2/ade/sapdata1
この場合は から まで/db2/ade/sapdata1
です。/db2
私たちのサーバーもLVM形式でインストールされません。
空き容量を確保するにはどうすればよいですか/db2
?
答え1
この作業の難しさは、2つのパーティションのブロックレイアウトによって異なります。開始ブロックと終了ブロックの観点から、ディスク上のどのパーティションが最初に出るのか、別のパーティションがあるのか、またはその間に空き領域があるのかなどがあります。ちょっと待って.... ..
使用されるファイルシステムも/db2/ade/sapdata1
縮小をサポートする必要があります。たとえば、xfsはそうではありません。
参考になるように例を挙げましょう。これは非常に危険な作業なので、お勧めできません。しかし、それはあなたに何が関係しているかについてのアイデアを与えます。この例は最も単純なケースです。パーティションのある場所から別の場所にデータを戻す(最後のブロックから最初のブロックとして計算する)必要があるため、他の場合ははるかに困難です。
p15が最初にディスクに保存され、次にp2が保存され、一緒に他のパーティションや利用可能なブロックなしでディスク全体を占めるとします。やるべきことは次のとおりです。
- p15のファイルシステムの縮小
- p15パーティションをファイルシステムの新しいサイズに縮小します。これにより、2つのパーティション間に空き容量が作成されます。
- p2(/db2)の削除
- p2パーティションの開始ブロックを手順2で使用できる最初の空きブロックに変更します(つまり、パーティションの開始位置をディスクの以前の場所にバックアップします)。
ディスクからデータを戻すには、次のコマンドを使用します。
dd if=/dev/cciss/c0d0p2 of=/dev/cciss/c0d0p2 bs=xxx skip=yyy
xxx
チャンクサイズは、残りのない成長中のパーティションの数で割る必要があり、バイト数を成長しているパーティションの数で割ったものでyyy
なければなりませんxxx
。/db2 ファイル・システムを拡張します。
想像できるように、ステップ5は非常に危険な作業です。実行に長い時間がかかる可能性があり、失敗したり中断したりすると回復が困難になる可能性があります。あなた〜しなければならないこれにより、自分が何をしているのかがわかります。
Linux で実行している場合のもう 1 つのオプションは、既存のデータをすべてそのままにして、デバイスマッパーを使用して既存のパーティションに隣接していない空のスペースをリンクして、より大きな仮想パーティションを形成することです。これは基本的にLVMが実行するものですが、ブロック範囲を自動的に透過的にリンクする素晴らしいLVMユーザーインターフェイスとメタデータはありません。