Как изменить размер файловых систем 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