Bug 254210 - 13.0-RC1: jail: nullfs: deleted files does not free up space
Summary: 13.0-RC1: jail: nullfs: deleted files does not free up space
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 13.0-STABLE
Hardware: amd64 Any
: --- Affects Some People
Assignee: freebsd-jail (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-03-10 23:36 UTC by rashey
Modified: 2021-03-13 20:23 UTC (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description rashey 2021-03-10 23:36:46 UTC
Sometimes it is necessary to share the same directory between jails and in this case there is a issue with free up space after deleting a files.

For example, the file created in jail A and then deleted in jail B will not free up space as long as jail A is running.

# cat /etc/fstab.test1
/storage/data   /usr/jail/test1/storage/data    nullfs          rw,noatime      0       0

# cat /etc/fstab.test2
/storage/data   /usr/jail/test2/storage/data    nullfs          rw,noatime      0       0

# cat /etc/jail.conf
path = "/usr/jail/${name}";
exec.clean;
exec.start      = "sh /etc/rc";
exec.stop       = "sh /etc/rc.shutdown jail";
host.hostname   = "${name}";
mount.fstab     = "/etc/fstab.${name}";
mount.devfs;
test1 {
}
test2 {
}

# df -ht ufs
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/da0p2    8.9G    3.2G    5.0G    39%    /

# service jail start
Starting jails: test1 test2.

# df -ht ufs
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/da0p2    8.9G    3.2G    5.0G    39%    /

# jexec test1 dd if=/dev/random of=/storage/data/random.dd bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 3.723429 secs (288374490 bytes/sec)

# df -ht ufs
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/da0p2    8.9G    4.2G    4.0G    52%    /

# jexec test2 rm /storage/data/random.dd

# df -ht ufs
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/da0p2    8.9G    4.2G    4.0G    52%    /

# service jail stop test2
Stopping jails: test2.

# df -ht ufs
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/da0p2    8.9G    4.2G    4.0G    52%    /

# service jail stop test1
Stopping jails: test1.

# df -ht ufs
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/da0p2    8.9G    3.2G    5.0G    39%    /
Comment 1 Kyle Evans freebsd_committer 2021-03-13 16:32:13 UTC
Let's loop in fs as well, since this is at the intersection of jails and filesystems.
Comment 2 Konstantin Belousov freebsd_committer 2021-03-13 18:06:03 UTC
Add "nocache" option to both nullfs mounts.
Comment 3 rashey 2021-03-13 20:23:49 UTC
(In reply to Konstantin Belousov from comment #2)

It is not documented and mount -t nullfs does not indicate that the option is used but it work.

One of the jails is working as file server and there is a lot of read operations.

Should I worry about hard disk head contention?