MinIO solves the problem of full inode of ext4 hard disk (xfs dynamically expands the proportion of inode space)

Table of Contents

  • 1. Problem description
  • Two, the solution
    • 1. Backup minio data to other disks or machines
    • 2. Unmount
    • 3. Do not format the data, change the ext4 file format to xfs file format (unsuccessful, use the following method)
    • 3. Format data
      • 1. Force format xfs
      • 2. Mount
    • 4. Inode space ratio of xfs hard disk format
      • 1. View the proportion of inode space
      • 2. Modify the proportion of inode space to 50% (subsequent adjustments can be made according to the storage situation)

1. Problem description

Because there are many small pictures, the Inode occupies 100% (the mounted storage format is ext4), and although there is still a lot of disk space, data cannot be written.

#View file system type
[root@dev19 disk1]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sdb
└─sdb1 LVM2_member Y4kEkJ-4uXj-9CDv-ydLT-QkF5-ynX4-ZsPLgi
  └─vg1-lv1 ext4 6de6101b-f61a-4838-afe8-649c127b1e21 /disk1
sr0
fd0
sda
├─sda2 LVM2_member ndfeBN-8YeI-FhGt-ZVzz-dcbw-DcQ8-P4fEgh
│ ├─centos-swap swap 34583692-432d-4bd4-9f66-48495f73443e
│ ├─centos-home xfs 51532aa3-9cea-4460-add7-8d8966d0d6b6 /home
│ └─centos-root xfs eb48cfe5-b6b7-4110-815b-add057914f5c /
└─sda1 xfs e4a236d9-fefb-472d-9378-1b475750f724 /boot

#Check inode status
[root@dev19 disk1]# df -ih nfs-data/
Filesystem Inode Used(I) Available(I) Used(I)% Mount Point
/dev/mapper/vg1-lv1 420K 409K 12K 98% /disk1

2. Solutions

Note: Because ext4 cannot dynamically adjust the proportion of inode space, so choose to change ext4 to xfs (supports dynamic adjustment of inode space proportion)

1. Backup minio data to another disk or machine

MinIO client (mc command) realizes data migration

2. Unmount

[root@dev19 disk1]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sdb
└─sdb1 LVM2_member Y4kEkJ-4uXj-9CDv-ydLT-QkF5-ynX4-ZsPLgi
  └─vg1-lv1 ext4 6de6101b-f61a-4838-afe8-649c127b1e21 /disk1
sr0
fd0
sda
├─sda2 LVM2_member ndfeBN-8YeI-FhGt-ZVzz-dcbw-DcQ8-P4fEgh
│ ├─centos-swap swap 34583692-432d-4bd4-9f66-48495f73443e
│ ├─centos-home xfs 51532aa3-9cea-4460-add7-8d8966d0d6b6 /home
│ └─centos-root xfs eb48cfe5-b6b7-4110-815b-add057914f5c /
└─sda1 xfs e4a236d9-fefb-472d-9378-1b475750f724 /boot
[root@dev19 disk1]# umount /disk1
umount: /disk1: Target busy.
        (in some cases via lsof(8) or fuser(1)
         find useful information about processes using the device)
[root@dev19 home]# cd /home/nfs-server/
[root@dev19 nfs-server]# docker-compose down
Stopping nfs-server... done
Removing nfs-server... done
Removing network nfs-server_default
[root@dev19 nfs-server]# umount /disk1
[root@dev19 nfs-server]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sdb
└─sdb1 LVM2_member Y4kEkJ-4uXj-9CDv-ydLT-QkF5-ynX4-ZsPLgi
  └─vg1-lv1 ext4 6de6101b-f61a-4838-afe8-649c127b1e21
sr0
fd0
sda
├─sda2 LVM2_member ndfeBN-8YeI-FhGt-ZVzz-dcbw-DcQ8-P4fEgh
│ ├─centos-swap swap 34583692-432d-4bd4-9f66-48495f73443e
│ ├─centos-home xfs 51532aa3-9cea-4460-add7-8d8966d0d6b6 /home
│ └─centos-root xfs eb48cfe5-b6b7-4110-815b-add057914f5c /
└─sda1 xfs e4a236d9-fefb-472d-9378-1b475750f724 /boot

3. Do not format the data, change the ext4 file format to xfs file format (unsuccessful, use the following method)

yum install fstransform
fstransform /dev/mapper/vg1-lv1 xfs

3. Format data

1. Forcibly format xfs

[root@dev19 ~]# mkfs.xfs -f /dev/vg1/lv1
meta-data=/dev/vg1/lv1 isize=512 agcount=4, agsize=27524864 blks
         = sectsz=512 attr=2, projid32bit=1
         = crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=110099456, imaxpct=25
         = sunit=0 width=0 blks
naming=version 2 bsize=4096 ascii-ci=0 ftype=1
log=internal log bsize=4096 blocks=53759, version=2
         = sectsz=512 sunit=0 blks, lazy-count=1
realtime=none extsz=4096 blocks=0, rtextents=0
[root@dev19 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sdb
└─sdb1 LVM2_member Y4kEkJ-4uXj-9CDv-ydLT-QkF5-ynX4-ZsPLgi
  └─vg1-lv1 xfs 21ad0a5e-699a-439d-b682-0ea10dfd36a8
sr0
fd0
sda
├─sda2 LVM2_member ndfeBN-8YeI-FhGt-ZVzz-dcbw-DcQ8-P4fEgh
│ ├─centos-swap swap 34583692-432d-4bd4-9f66-48495f73443e
│ ├─centos-root xfs eb48cfe5-b6b7-4110-815b-add057914f5c /
│ └─centos-home xfs 51532aa3-9cea-4460-add7-8d8966d0d6b6 /home
└─sda1 xfs e4a236d9-fefb-472d-9378-1b475750f724 /boot

2. Mount

[root@dev19 ~]# mount /dev/vg1/lv1 /disk1

#Adjust permanent mount
$ vim /etc/fstab

#/dev/sdb1 /minio ext4 defaults 0 0

/dev/sdb1 /minio xfs defaults 0 0

Check the Inode status after modifying the hard disk format to xfs

4. XFS hard disk format inode space ratio

1. Check the proportion of inode space

[root@dev19 nfs-server]# xfs_info /disk1
meta-data=/dev/mapper/vg1-lv1 isize=512 agcount=4, agsize=27524864 blks
         = sectsz=512 attr=2, projid32bit=1
         = crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=110099456, imaxpct=10
         = sunit=0 width=0 blks
naming=version 2 bsize=4096 ascii-ci=0 ftype=1
log=internal bsize=4096 blocks=53759, version=2
         = sectsz=512 sunit=0 blks, lazy-count=1
realtime=none extsz=4096 blocks=0, rtextents=0

2. Modify the proportion of inode space to 50% (it can be adjusted later according to the storage situation)

[root@dev19 nfs-server]# xfs_growfs -m 50 /disk1
meta-data=/dev/mapper/vg1-lv1 isize=512 agcount=4, agsize=27524864 blks
         = sectsz=512 attr=2, projid32bit=1
         = crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=110099456, imaxpct=10
         = sunit=0 width=0 blks
naming=version 2 bsize=4096 ascii-ci=0 ftype=1
log=internal bsize=4096 blocks=53759, version=2
         = sectsz=512 sunit=0 blks, lazy-count=1
realtime=none extsz=4096 blocks=0, rtextents=0
inode max percent changed from 10 to 50
[root@dev19 nfs-server]# xfs_info /disk1
meta-data=/dev/mapper/vg1-lv1 isize=512 agcount=4, agsize=27524864 blks
         = sectsz=512 attr=2, projid32bit=1
         = crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=110099456, imaxpct=50
         = sunit=0 width=0 blks
naming=version 2 bsize=4096 ascii-ci=0 ftype=1
log=internal bsize=4096 blocks=53759, version=2
         = sectsz=512 sunit=0 blks, lazy-count=1
realtime=none extsz=4096 blocks=0, rtextents=0
[root@dev19 nfs-server]# df -ih /disk1
Filesystem Inode Used(I) Available(I) Used(I)% Mount Point
/dev/mapper/vg1-lv1 420M 4 420M 1% /disk1
[root@dev19 nfs-server]#