web-dev-qa-db-ja.com

データを失うことなく、パーティション内のスペースを再割り当てします

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/md0               1829037   1745454         0 100% /
tmpfs                   255940         0    255940   0% /lib/init/rw
udev                     10240        44     10196   1% /dev
tmpfs                   255940         0    255940   0% /dev/shm
/dev/mapper/sys-srv  206424760  35519164 160419836  19% /srv

これは私のサーバー上の私のdfの出力です。 md0にspanceが必要なことは明らかで、/ srvから取得したいと思います。誰かが私のディスクのセットアップを理解し、パーティションの2GBを10以上に増やす方法についてアドバイスできますか?

pvs出力:


  Incorrect metadata area header checksum
  Incorrect metadata area header checksum
  Incorrect metadata area header checksum
  Incorrect metadata area header checksum
  Incorrect metadata area header checksum
  Incorrect metadata area header checksum
  PV         VG   Fmt  Attr PSize   PFree
/dev/md0 lvm2 -- 232.88G 232.88G /dev/md1 sys lvm2 a- 231.02G 29.02G

vgs出力:


  Incorrect metadata area header checksum
  VG   #PV #LV #SN Attr   VSize   VFree 
  sys    1   2   0 wz--n- 231.02G 29.02G

lvs出力:


  Incorrect metadata area header checksum
  LV   VG   Attr   LSize   Origin Snap%  Move Log Copy% 
  srv  sys  -wi-ao 200.00G
swap sys -wi-ao 2.00G

fdsik -l出力:


Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         243     1951866   fd  Linux raid autodetect
/dev/sda2             244       30401   242244135   fd  Linux raid autodetect

Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1         243     1951866   fd  Linux raid autodetect
/dev/sdb2             244       30401   242244135   fd  Linux raid autodetect

Disk /dev/md0: 1998 MB, 1998585856 bytes
2 heads, 4 sectors/track, 487936 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md0 doesn't contain a valid partition table

Disk /dev/md1: 248.0 GB, 248057888768 bytes
2 heads, 4 sectors/track, 60561008 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md1 doesn't contain a valid partition table

Disk /dev/dm-0: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-0 doesn't contain a valid partition table

Disk /dev/dm-1: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-1 doesn't contain a valid partition table
2
Chris-Top

詳細を追加する必要があります。パーティションレイアウト(fdisk -lの出力)とdfの出力の/ dev/mapperは、おそらくLVMを使用していることを意味します。その場合もそうです(pvs; vgs; lvsの出力)。また、あなたのルードとしての/proc/mdstatのコンテンツはRAID化されているようです。

df出力が意味するRAIDとLVMの組み合わせは、//srvが両方とも同じLVMボリュームグループにある場合よりも、スペースの再配置をはるかに困難にします。 +バックアップの確認、マシンのワイプ、再配置、およびバックアップからのデータと構成の復元が簡単になります。 /svrを縮小し、空き領域を使用して新しいボリュームを作成し、ファイルを移動して適切な場所にマウントすることで、ルートファイルシステムからいくつかのものを移動できる場合があります。これにより、スケジュールが可能になるまで、ある程度の領域が購入されます。より大きな変化。 /homeは、多くの場合、これに適した候補です。/var/logもおそらくそうですが、スペースが使用されている場所によって異なります。また、手っ取り早い方法として、パッケージキャッシュ(Debian-aのようなシステムではaptitude clean)をクリアし、必要と思われない古いログを/var/logから移動するようにしてください。

編集:(追加の詳細が追加された後)

Md0は単純なファイルシステムとしてマウントされた〜2Gbボリュームのように見えますが、LVMでは(はるかに大きい)pvとしてリストされているため、セットアップに問題があるようです。

ただし、他のpv/vgには空き領域がたくさんあるので、それが必要でない限り(たとえば、LVMスナップショットベースの方法を使用して最小限のダウンタイムで一貫したバックアップを作成しているため)、そこにルートを移動できます。基本的な手順は次のとおりです。

  1. 現在の/(一時ファイルのクリーンアップ、パッケージキャッシュや古いログの削除)にスペースを確保して、スペース的にヒュームで実行されないようにします。
  2. Lvcreateを使用して、必要なサイズの新しいルートファイルシステムの論理ボリュームを追加します
  3. LiveCDまたは同様のものから起動します(レスキューモード/シングルユーザーモードの起動もおそらく機能し、余分なジゲリーポケリーなしでRAID/LVMレイアウトを理解する可能性が高くなります))。うまくいけば、このインスタンス(レスキューブートまたはライブCD)は、RAIDとLVMのセットアップを確認できます。
  4. ファイルシステムをdd if=/dev/md0 of=/dev/mapper/sys-rootで未加工でコピーし、サイズを変更して、より大きな論理ボリュームをresize2fs /dev/mapper/sys-rootで埋めます(最初にfsckを実行し、その指示に従ってこれを実行する必要があります)。コピーされたファイルシステムは、uuidgentune2fs /dev/hdaX -U <uuid-generated-by-uuidgen>を持つ新しいUUIDです(そのUUIDにも注意してください。必要になる場合があります)
  5. 新しいファイルシステムをマウントし、/etc/fstabを更新して、古いファイルシステムではなく新しいファイルシステムを参照するようにします。
  6. 再起動し、手動でgrubに指示します(grubを想定しています。古いインストールの場合は、ブートローダーとしてliloを使用している可能性があります)。古いファイルシステムではなく、この新しいファイルシステムを起動します。
  7. それがうまくいった場合は、新しいファイルシステムをrootとして問題なく使用する必要があります。そのgrub構成を更新して、新しいセットアップをオプションとして含め、grub-installを新しい構成で再実行します。
  8. 古いファイルシステムがまだ存在し、後で何か問題が発見された場合に備えて、古いものと新しいものの間でデュアルブートを提供するようにgrubが構成されています

(仕事中のATMで休憩しているので、上記に必要な正確なコマンド/手順を調査する時間がありません-詳細については、関連するドキュメント/フォーラムを調べてください)

anyのような主要な操作と同様に、続行する前にバックアップが最新であることを確認するか、完全なrawコピーまたはディスクを取得します/何かが不可逆的にうまくいかない場合に備えて、ファイルシステムを別のドライブに。

2
David Spillett

/ srvデバイスはLVMを使用しているため、LVM管理対象デバイスプール内でディスクスペースをかなり自由に再割り当てできます。残念ながら、ルートパーティションはmd0 RAIDアレイから直接マウントされているように見えるため、経由でスペースを再割り当てすることはできません。 LVM。

代わりに、mount --bindを使用して/ srv内/下にあるものの一部をマウントできます。これにより、/ srvの下/下にある必要があるものの一部が作成され、/ dev/md0上のスペースが解放されます。

ホームエリア(/ home)または/ varマウントポイントは通常は大きいので再配置することをお勧めしますが、du -sh /*を使用して、以下のすべてのディスク使用量を確認することで、これを自分で調べることができます。 /。

次に、大きなディレクトリの内容を/ srvにコピーしてバインドマウントし、次に/を別の場所に再マウントして、コピーしたディレクトリの古いコンテンツを削除します(レシピ例)。

mkdir /srv/var
cp -a /var/* /srv/var/
mount --bind /var /srv/var
mkdir /tmp/root
mount /dev/md0 /tmp/root
#rm -rf /tmp/root/var

使用されている可能性のあるファイルシステムのいずれかの部分で操作している場合、これはシングルユーザーモードで実行するのが最適であることに注意してください。注意してください。コピーしたパーティションの名前を/に変更してテストし、削除する前に機能することを確認することをお勧めします。

2
James Yale