Поиск по сайту:

Как изменить размер файловых систем XFS/Btrfs в Linux |


Файловую систему Linux можно определить как структурированный набор файлов в разделе или на диске. Это встроенный уровень операционной системы Linux, который отвечает за управление данными в хранилище. Данные хранятся в иерархической структуре с корневыми каталогами и подкаталогами. В Linux поддерживается множество файловых систем, в том числе; EXT, EXT2, EXT3, EXT4, JFS, Swap, XFS, ReiserFS, Btrfs и т. д.

В этом руководстве мы расскажем, как изменить размер файловых систем XFS/Btrfs в Linux. Файловая система XFS называется высокоскоростной JFS (журналируемая файловая система). Эта файловая система разработана для параллельной обработки ввода-вывода. Btrfs(файловая система B-дерева) известна своей отказоустойчивостью, обширной конфигурацией хранилища, системой восстановления и т. д.

Изменение файловых систем отличается от изменения размера разделов/томов, которое освобождает больше места на физическом томе. При использовании YaST Partitioner для изменения размера логических томов файловые системы автоматически подстраиваются под новые размеры раздела. Однако в некоторых случаях вам может потребоваться изменить размер файловых систем вручную. Случаи, когда вам может потребоваться изменить размер файловой системы вручную, включают:

  • После изменения размера виртуального диска гостевой виртуальной машины.
  • Чтобы сжать файловые системы Btrfs, YaST поддерживает только растущие файловые системы Btrfs.
  • После изменения размера тома из сетевого хранилища
  • После изменения размера разделов вручную с помощью fdisk/parted

Но помните, что изменение размера файловых систем сопряжено с рисками, которые потенциально могут привести к потере данных. Поэтому настоятельно рекомендуется сделать резервную копию доступных данных перед изменением размера файловой системы. Ниже приведена таблица, показывающая файловые системы Linux, поддерживающие изменение размера.

File System Utility Tool Grow Shrink
XFS xfs_growfs Online Not supported
Btrfs btrfs filesystem resize Online Online
Ext2 resize2fs Online/Offline Offline only
Ext3 resize2fs Online/Offline Offline only
Ext4 resize2fs Online/Offline Offline only

При расширении/увеличении файловой системы вы можете указать точный размер для увеличения или увеличения до максимального доступного пространства. Но прежде чем увеличивать размер файловой системы, убедитесь, что размер логического тома/устройства увеличился. При сжатии или увеличении файловой системы путем указания размера необходимо соблюдать следующие условия:

  • Новый размер должен быть больше размера существующих данных. В противном случае произойдет потеря данных.
  • Новый размер для увеличения должен быть равен или меньше текущего размера устройства, поскольку размер файловой системы не может выходить за пределы доступного пространства.

1. Создайте раздел/логический том.

Я предполагаю, что у вас уже есть раздел/логический том, который нужно увеличить. В этом руководстве будет показано, как изменить размер файловой системы XFS, подключив другой диск (sdb) и увеличив том:

$ lsblk
NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                  8:0    0   40G  0 disk 
├─sda1               8:1    0    1G  0 part /boot
└─sda2               8:2    0   39G  0 part 
  ├─almalinux-root 253:0    0   35G  0 lvm  /
  └─almalinux-swap 253:1    0    4G  0 lvm  [SWAP]
sdb                  8:16   0   10G  0 disk 
sr0                 11:0    1 1024M  0 rom  

Чтобы определить файловую систему на вашем устройстве, используйте команду lsblk -f.

Теперь создайте таблицу разделов на смонтированном диске.

sudo cfdisk /dev/sdb

Выберите тип dos и действуйте, как показано ниже:

    Device        Boot       Start         End     Sectors   Size   Id Type
>>  Free space                2048    20971519    20969472    10G               

           [   New  ]  [  Quit  ]  [  Help  ]  [  Write ]  [  Dump  ]

Создайте новый раздел размером, скажем, 6 ГБ и оставьте немного свободного места на вашем устройстве.

Установите его как основной раздел.

Теперь у вас будет создан раздел, как показано ниже. Запишите изменения на диск.

Когда будет предложено записать изменения, согласитесь, набрав да.

После внесения изменений выйдите и проверьте, создан ли раздел:

$ lsblk
NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                  8:0    0   40G  0 disk 
├─sda1               8:1    0    1G  0 part /boot
└─sda2               8:2    0   39G  0 part 
  ├─almalinux-root 253:0    0   35G  0 lvm  /
  └─almalinux-swap 253:1    0    4G  0 lvm  [SWAP]
sdb                  8:16   0   10G  0 disk 
└─sdb1               8:17   0    6G  0 part 
sr0                 11:0    1 1024M  0 rom  

Создайте на нем файловую систему XFS/Btrfs.

##For XFS
sudo mkfs.xfs /dev/sdb1 -f

##For Btrfs
sudo mkfs.btrfs /dev/sdb1 -f

Смонтируйте файл:

sudo mkdir /mnt/datastore
sudo mount /dev/sdb1 /mnt/datastore
sudo mount | grep /dev/sdb1

Пример вывода:

##For XFS
/dev/sdb1 on /mnt/datastore type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)

##For Btrfs
/dev/sdb1 on /mnt/datastore type btrfs (rw,relatime,space_cache,subvolid=5,subvol=/)

Я предполагаю, что в пути есть контент:

$ ls -al /mnt/datastore/
total 0
drwxr-xr-x. 4 root root 32 Apr 12 05:23 .
drwxr-xr-x. 3 root root 23 Apr 12 05:22 ..
drwxr-xr-x. 2 root root  6 Apr 12 05:23 new
drwxr-xr-x. 2 root root  6 Apr 12 05:23 new.txt

2. Увеличение раздела/логического тома

Сначала проверьте текущий размер раздела.

$ df -h
Filesystem                  Size  Used Avail Use% Mounted on
devtmpfs                    1.8G     0  1.8G   0% /dev
tmpfs                       1.9G     0  1.9G   0% /dev/shm
tmpfs                       1.9G  9.2M  1.9G   1% /run
tmpfs                       1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/almalinux-root   36G  4.6G   31G  14% /
/dev/sda1                  1014M  347M  668M  35% /boot
tmpfs                       374M   12K  374M   1% /run/user/42
tmpfs                       374M  4.0K  374M   1% /run/user/1000
/dev/sdb1                   6.0G   76M  6.0G   2% /mnt/datastore

Здесь мы увеличим раздел /dev/sdb1 вручную с помощью fdisk до 10 ГБ. Запустите утилиту и приступайте к изменению раздела до нового размера:

sudo cfdisk /dev/sdb

Удалите раздел.

Создайте новый раздел большего размера, чем предыдущий, и желаемого размера. Здесь мы создадим раздел 10 ГБ, используя свободное место на устройстве.

Установите его как основной раздел, запишите изменения и выйдите:

3. Изменение размера файловых систем XFS/Btrfs в Linux.

После увеличения раздела продолжите и измените размер файловых систем, как показано ниже.

3.1. Изменение размера файловых систем XFS

Этого можно добиться с помощью служебного инструмента xfs_growfs. Эта команда используется только для увеличения размера файловой системы, сжатие невозможно.

Чтобы увеличить файловую систему XFS, используйте команду с синтаксисом ниже:

sudo xfs_growfs -d size /mount/point

-d size определяет размер, до которого необходимо увеличиться. Использование команды -d без указания размера приведет к увеличению до максимального размера, поддерживаемого устройством.

В этом руководстве команда будет такой:

sudo xfs_growfs -d /mnt/datastore

Пример вывода:

Проверьте, были ли внесены изменения:

$ df -h
Filesystem                  Size  Used Avail Use% Mounted on
devtmpfs                    1.8G     0  1.8G   0% /dev
tmpfs                       1.9G     0  1.9G   0% /dev/shm
tmpfs                       1.9G  9.2M  1.9G   1% /run
tmpfs                       1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/almalinux-root   36G  4.6G   31G  14% /
/dev/sda1                  1014M  347M  668M  35% /boot
tmpfs                       374M   12K  374M   1% /run/user/42
tmpfs                       374M  4.0K  374M   1% /run/user/1000
/dev/sdb1                    10G  104M  9.9G   2% /mnt/datastore

Проверьте, существуют ли файлы:

3.2. Изменение размера файловых систем Btrfs в Linux.

Для файловой системы Btrfs команду btrfs filesystem resize можно использовать для увеличения и уменьшения файловой системы при условии соблюдения необходимых условий.

Чтобы увеличить/сжать файловую систему Btrfs в Linux, используйте команду с синтаксисом:

sudo btrfs filesystem resize amount /mount/point

Например, чтобы увеличить файловую систему на 1 ГБ, команда будет такой:

$ sudo btrfs filesystem resize +1G /mnt/datastore
Resize '/mnt/datastore' of '+1G'

Проверьте размер:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           394M  1.2M  392M   1% /run
/dev/sda1        39G  5.0G   32G  14% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           394M   84K  394M   1% /run/user/116
tmpfs           394M   56K  394M   1% /run/user/1000
/dev/sdb1       7.0G  3.6M  6.5G   1% /mnt/datastore

Чтобы уменьшить файловую систему на 1 ГБ, команда будет такой:

$ sudo btrfs filesystem resize -1G /mnt/datastore
Resize '/mnt/datastore/' of '-1G'

Проверьте, не была ли уменьшена файловая система:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           394M  1.2M  392M   1% /run
/dev/sda1        39G  5.0G   32G  14% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           394M   84K  394M   1% /run/user/116
tmpfs           394M   56K  394M   1% /run/user/1000
/dev/sdb1       6.0G  3.6M  5.5G   1% /mnt/datastore

Вы также можете увеличить файловую систему до максимального доступного пространства:

$ sudo btrfs filesystem resize max /mnt/datastore
Resize '/mnt/datastore' of 'max'

Проверьте, как показано ниже:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           394M  1.2M  392M   1% /run
/dev/sda1        39G  5.0G   32G  14% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           394M   84K  394M   1% /run/user/116
tmpfs           394M   56K  394M   1% /run/user/1000
/dev/sdb1        10G  3.6M  9.5G   1% /mnt/datastore

Проверьте, существуют ли файлы:

Вуаля!

Мы триумфально рассмотрели, как изменить размер файловых систем XFS/Btrfs в Linux. С помощью этого руководства вы можете продолжить и изменить размер файловых систем XFS/Btrfs. Я надеюсь, что это было важно.

Похожие сообщения:

  • Как изменить размер корневого раздела ext2/3/4 и XFS без LVM
  • Как изменить размер/расширить том Cinder в OpenStack
  • Как изменить размер экземпляра/виртуальной машины OpenStack

Статьи по данной тематике: