GNU/Linux >> Linux の 問題 >  >> Cent OS

Btrfs ボリューム / ファイルシステムのサイズを変更 / 拡張する方法

btrfs は CentOS/RHEL 7 で広く使用されており、Docker のバックエンド ストレージ ドライバーとしても使用されているため、btrfs ファイル システムのサイズ変更/拡張は一般的なタスクです。この投稿では、btrfs ルート ボリュームを拡張するための 2 つの一般的な手順を示しています。

<オール>
  • 元のディスクの空き容量を使用するように拡張
  • 新しいディスクを同じ btrfs ボリュームに追加する
  • 注意 :これらの手順は、既存のパーティションを変更したり、btrfs バランス操作中に予期しない停電が発生したりする可能性があるため、危険です。データ/システムに使用可能な最新のバックアップがあることを確認してください。

    1.元のディスクの空き容量を使用するようにパーティションのサイズを変更

    1. ディスクが 2 テラバイトより大きい場合は、fdisk または parted を使用して、ディスク容量と現在のパーティションのサイズを確認します。

    # fdisk -l /dev/xvda
    
    Disk /dev/xvda: 53.7 GB, 53687091200 bytes, 104857600 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x00087895
    
    Device Boot Start End Blocks Id System
    /dev/xvda1 * 2048 1030143 514048 83 Linux
    /dev/xvda2 1030144 9418751 4194304 82 Linux swap / Solaris
    /dev/xvda3 9418752 31457279 11019264 83 Linux
    [root@host0 ~]# lsblk -f /dev/xvda
    NAME FSTYPE LABEL UUID MOUNTPOINT
    xvda
    ├─xvda1 xfs /boot 049e257e-25b1-4f46-80aa-ffaa27a21022 /boot
    ├─xvda2 swap SWAP-VM 0406d7df-68b6-47cb-8ea9-195ac7ef7497 [SWAP]
    └─xvda3 btrfs btr_pool 1e72a30b-d59d-458f-b04f-59bf8bdec35d /

    2. fdisk はパーティションのサイズ変更をサポートしていないため、変更したい古いパーティションを削除して、新しいパーティションを作成する必要があります。

    # fdisk /dev/xvda
    Welcome to fdisk (util-linux 2.23.2).
    
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Command (m for help): p
    
    Disk /dev/xvda: 53.7 GB, 53687091200 bytes, 104857600 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x00087895
    
    Device Boot Start End Blocks Id System
    /dev/xvda1 * 2048 1030143 514048 83 Linux
    /dev/xvda2 1030144 9418751 4194304 82 Linux swap / Solaris
    /dev/xvda3 9418752 31457279 11019264 83 Linux
    
    Command (m for help): d
    Partition number (1-3, default 3): 3
    Partition 3 is deleted

    3. 新しいパーティションを作成しましょう。

    Command (m for help): n
    Partition type:
    p primary (2 primary, 0 extended, 2 free)
    e extended
    Select (default p): p
    Partition number (3,4, default 3): 3
    First sector (9418752-104857599, default 9418752):
    Using default value 9418752
    Last sector, +sectors or +size{K,M,G} (9418752-104857599, default 104857599):
    Using default value 104857599
    Partition 3 of type Linux and of size 45.5 GiB is set
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    
    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table. The new table will be used at
    the next reboot or after you run partprobe(8) or kpartx(8)
    Syncing disks.

    4. 「fdisk -l」を使用して、新しく作成されたパーティションを確認します。

    # fdisk -l /dev/xvda
    
    Disk /dev/xvda: 53.7 GB, 53687091200 bytes, 104857600 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x00087895
    
    Device Boot Start End Blocks Id System
    /dev/xvda1 * 2048 1030143 514048 83 Linux
    /dev/xvda2 1030144 9418751 4194304 82 Linux swap / Solaris
    /dev/xvda3 9418752 104857599 47719424 83 Linux

    5. 「partprobe」コマンドを使用して、/dev/xvda に加えた変更を Linux カーネルに知らせる必要があります。

    # partprobe
    Error: Partition(s) 3 on /dev/xvda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.

    6. 使用されているのはルート ファイル システムであるため、OS を再起動してカーネルに変更を反映させる必要があります。ルート ファイルシステムでない場合は、この手順を省略できます。

    # shutdown -r now

    btfrs ファイルシステムの拡張

    1. これで、btrfs ルート ファイル システムを展開できます。

    # btrfs filesystem resize +10g /
    Resize '/' of '+10g'

    2.「df -h」コマンド出力で新しいファイルシステムのサイズを確認します。

    # df -h /
    Filesystem    Size    Used     Avail    Use%     Mounted on
    /dev/xvda3    21G     2.5G     17G      14%      /

    必要に応じて、ディスク上のすべてのスペースを使用することもできます。 「btrfs filesystem resize」コマンドでオプション「max」を使用します。

    # btrfs filesystem resize max /
    Resize '/' of 'max'
    # df -h /
    Filesystem    Size    Used     Avail    Use%     Mounted on
    /dev/xvda3    46G     2.5G     42G      6%      /

    2.新しいディスクを btrfs ボリュームに追加

    1. 新しい LUN を提示するか、仮想マシンを実行している場合は新しい仮想ディスクを接続することで、システムに新しいディスクを追加できます。新しい LUN/ディスクをスキャンするには、以下のスクリプトを実行する必要がある場合があります。

    # rescan-scsi-bus.sh -a

    または、システムを再起動して、新しいディスクを OS から認識できるようにします。

    2. コマンド「sblk -f」または「fdisk -l」を使用して、オペレーティング システムが新しいディスクを認識できることを確認します。たとえば、/dev/xvdb は、この投稿の例の新しいディスクです。

    # lsblk -f
    NAME FSTYPE LABEL UUID MOUNTPOINT
    xvda
    ├─xvda1 xfs /boot 049e257e-25b1-4f46-80aa-ffaa27a21022 /boot
    ├─xvda2 swap SWAP-VM 0406d7df-68b6-47cb-8ea9-195ac7ef7497 [SWAP]
    └─xvda3 btrfs btr_pool 1e72a30b-d59d-458f-b04f-59bf8bdec35d /
    xvdb
    # fdisk -l /dev/xvdb
    
    Disk /dev/xvdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes

    3. 新しいディスク /dev/xvdb をルート ボリュームに追加します

    # btrfs device add /dev/xvdb /

    4. 最初のディスク /dev/xvda から 2 番目のディスク /dev/xvdb にメタ データを配布します。

    # btrfs filesystem balance /
    WARNING:
    
    Full balance without filters requested. This operation is very
    intense and takes potentially very long. It is recommended to
    use the balance filters to narrow down the balanced data.
    Use 'btrfs balance start --full-balance' option to skip this
    warning. The operation will start in 10 seconds.
    Use Ctrl-C to stop it.
    10 9 8 7 6 5 4 3 2 1
    Starting balance without any filters.
    Done, had to relocate 9 out of 9 chunks

    5. 「df -h」を使用して、ファイルシステムの新しいサイズを確認します。

    # df -h /
    Filesystem    Size    Used    Avail    Use%    Mounted on
    /dev/xvda3    56G     2.5G    52G      5%      /

    ルート ファイル システムが /dev/xvdb のサイズであるさらに 10G 増加していることがわかります。

    Btrfs ファイル システムを作成してマウントする方法 (例で説明)


    Cent OS
    1. Ext ファイル システムを Btrfs に変換する方法

    2. 「btrfs device」コマンドを使用して、btrfs ファイルシステムにデバイスを追加/削除する方法

    3. 「Btrfs」ファイルシステムの機能

    1. パフォーマンスを向上させるために Btrfs ファイルシステムを調整する方法

    2. XFS ファイルシステム (CentOS/RHEL 7) で /boot パーティションのサイズを拡張する

    3. LVM でボリュームをストライプ (RAID0) ボリュームに変換する方法

    1. CentOS / RHEL :既存の物理ボリューム (PV) をリサイズ (拡張) する方法

    2. Btrfs ファイルシステムの使用状況を確認し、バランシングを実行する方法

    3. BTRFS ファイルシステム RAID のエラーを監視するには?