发现问题
在某宝买了一块32G的ssd电子盘,但是在FreeBSD里面使用df看到的空间较少,只有15G,一度怀疑是发错货了。不过自己清楚的记得swap分区还分了4G,这样铁定是大于16G的,应该是32G没错。但是少掉的那部分空间跑哪里去了呢?
df -h
Filesystem            Size    Used   Avail Capacity  Mounted on
zroot/ROOT/default     15G     10G    4.4G    70%    /
devfs                 1.0K      0B    1.0K     0%    /dev
/dev/gpt/efiboot0     260M    1.3M    259M     1%    /boot/efi
zroot                 4.4G     96K    4.4G     0%    /zroot
 
使用df只能看到15G,使用gpart show ,能看到是26G
gpart show 
=>      40  62533216  ada0  GPT  (30G)
        40    532480     1  efi  (260M)
    532520      1024     2  freebsd-boot  (512K)
    533544       984        - free -  (492K)
    534528   8388608     3  freebsd-swap  (4.0G)
   8923136  53608448     4  freebsd-zfs  (26G)
  62531584      1672        - free -  (836K)
 
但就是在df里面显示不出来,就像空间凭空消失了一样。

解决问题:
使用diskinfo查看ada盘的情况
diskinfo -ls /dev/ada*
/dev/ada0	5E5AD79805161455281
/dev/ada0p1	5E5AD79805161455281
/dev/ada0p2	5E5AD79805161455281
/dev/ada0p3	5E5AD79805161455281
/dev/ada0p4	5E5AD79805161455281
 
看看ada0的情况,30G,证明盘确实是32G的
diskinfo -v /dev/ada0
/dev/ada0
	512         	# sectorsize
	32017047552 	# mediasize in bytes (30G)
	62533296    	# mediasize in sectors
	0           	# stripesize
	0           	# stripeoffset
	62037       	# Cylinders according to firmware.
	16          	# Heads according to firmware.
	63          	# Sectors according to firmware.
	SK 32GB     	# Disk descr.
	5E5AD79805161455281	# Disk ident.
	ahcich1     	# Attachment
	Yes         	# TRIM/UNMAP support
	0           	# Rotation rate in RPM
	Not_Zoned   	# Zone Mode
 
看看ada0p4的情况
diskinfo -v /dev/ada0p4
/dev/ada0p4
	512         	# sectorsize
	27447525376 	# mediasize in bytes (26G)
	53608448    	# mediasize in sectors
	0           	# stripesize
	4568645632  	# stripeoffset
	53182       	# Cylinders according to firmware.
	16          	# Heads according to firmware.
	63          	# Sectors according to firmware.
	SK 32GB     	# Disk descr.
	5E5AD79805161455281	# Disk ident.
	ahcich1     	# Attachment
	Yes         	# TRIM/UNMAP support
	0           	# Rotation rate in RPM
 
ada0p4有26G空间,那怎么df看到的空间只有15G那么少呢?
使用zfs list发现了端倪
zfs list 
NAME                                 USED  AVAIL  REFER  MOUNTPOINT
zroot                               20.3G  4.42G    96K  /zroot
zroot/ROOT                          20.2G  4.42G    96K  none
zroot/ROOT/default                  20.2G  4.42G  10.1G  /
zroot/ROOT/default/bvm_Node-1_disk  10.2G  13.3G  1.23G  -
zroot/ROOT/default/bvm_Node-2_disk     0B  4.42G    56K  -
zroot/home                          30.5M  4.42G    96K  /home
zroot/home/skywalk                  30.4M  4.42G  30.4M  /home/skywalk
zroot/tmp                            152K  4.42G   152K  /tmp
zroot/usr                            288K  4.42G    96K  /usr
zroot/usr/ports                       96K  4.42G    96K  /usr/ports
zroot/usr/src                         96K  4.42G    96K  /usr/src
zroot/var                            836K  4.42G    96K  /var
zroot/var/audit                       96K  4.42G    96K  /var/audit
zroot/var/crash                       96K  4.42G    96K  /var/crash
zroot/var/log                        324K  4.42G   324K  /var/log
zroot/var/mail                       128K  4.42G   128K  /var/mail
zroot/var/tmp                         96K  4.42G    96K  /var/tmp
 
原来是zroot/ROOT/default这里占用了10G空间,
具体来说就是zroot/ROOT/default/bvm_Node-1_disk 这里占用了10G大小,这样zfs里面本来26G结果显示16G就说得过去了。看名字就知道这是bvm虚拟机占用的空间。
问题是这个怎么删除呢?
zroot/ROOT/default/bvm_Node-1_disk  10.2G  13.3G  1.23G  -
 zroot/ROOT/default/bvm_Node-2_disk     0B  4.42G    56K  -
  
找到方法了,使用zfs destroy删除:
zfs destroy -R zroot/ROOT/default/bvm_Node-1_disk 
如果有snapshot,就会提示用-R参数来删除。删除之后,空间就释放出来了:
zfs destroy -R zroot/ROOT/default/bvm_Node-1_disk
root@fbhost:/ # zfs list
NAME                 USED  AVAIL  REFER  MOUNTPOINT
zroot               10.1G  14.6G    96K  /zroot
zroot/ROOT          10.1G  14.6G    96K  none
zroot/ROOT/default  10.1G  14.6G  10.1G  /
zroot/home          30.5M  14.6G    96K  /home
zroot/home/skywalk  30.4M  14.6G  30.4M  /home/skywalk
 
df也看到释放出来了
df -h
Filesystem            Size    Used   Avail Capacity  Mounted on
zroot/ROOT/default     25G     10G     15G    41%    /
 
总结
这个zroot/ROOT/default空间里本来是bvm虚拟机管理系统设定的虚拟机存储位置,但是使用bvm 命令并没有能删除该虚拟机(bvm --remove Note-1),于是选择了在zfs里面手动删除。删除后达到了预计的效果,空间被释放出来了。
使用命令
# 查看空间占用情况
zfs list 
# 产出zfs占用
zfs destroy -R zroot/ROOT/default/bvm_Node-1_disk 
ps,bvm里面删除虚拟机和硬盘的命令是
# 删除虚拟机
bvm --remove Note-1
# 删除硬盘
bvm --deldisk Note-1 
zfs删除快照释放磁盘空间
不久又碰到一回,先用rm等命令删除了一些文件,但是空间没有释放出来。
于是进行了如下操作:
zfs list -t all
NAME                                       USED  AVAIL  REFER  MOUNTPOINT
zroot                                     22.4G  2.34G    96K  /zroot
zroot/ROOT                                21.4G  2.34G    96K  none
zroot/ROOT/default                        21.4G  2.34G  10.8G  /
zroot/ROOT/default@2024-06-05-18:44:13-0  5.10M      -  18.8G  -
zroot/ROOT/default@2024-06-05-19:12:45-0  2.52M      -  18.9G  -
zroot/home                                30.5M  2.34G    96K  /home
zroot/home/skywalk                        30.4M  2.34G  30.4M  /home/skywalk
zroot/jails                                910M  2.34G   910M  /usr/jails
zroot/jails/ub22                            96K  2.34G    96K  /usr/jails/vm/ub22
zroot/tmp                                  188K  2.34G   188K  /tmp
zroot/usr                                  296K  2.34G    96K  /usr
zroot/usr/ports                            104K  2.34G   104K  /usr/ports
zroot/usr/src                               96K  2.34G    96K  /usr/src
zroot/var                                 1.28M  2.34G    96K  /var
zroot/var/audit                             96K  2.34G    96K  /var/audit
zroot/var/crash                             96K  2.34G    96K  /var/crash
zroot/var/log                              604K  2.34G   604K  /var/log
zroot/var/mail                             320K  2.34G   320K  /var/mail
zroot/var/tmp                               96K  2.34G    96K  /var/tmp
zroot/vm                                   192K  2.34G   192K  /zroot/vm
root@fbhost:~ # zfs destroy zroot/ROOT/default@2024-06-05-18:44:13-0
root@fbhost:~ # zfs destroy zroot/ROOT/default@2024-06-05-19:12:45-0
root@fbhost:~ # zfs list -t all
NAME                 USED  AVAIL  REFER  MOUNTPOINT
zroot               11.7G  13.0G    96K  /zroot
zroot/ROOT          10.8G  13.0G    96K  none
zroot/ROOT/default  10.8G  13.0G  10.8G  /
zroot/home          30.5M  13.0G    96K  /home
zroot/home/skywalk  30.4M  13.0G  30.4M  /home/skywalk
zroot/jails          910M  13.0G   910M  /usr/jails
zroot/jails/ub22      96K  13.0G    96K  /usr/jails/vm/ub22
zroot/tmp            188K  13.0G   188K  /tmp
zroot/usr            296K  13.0G    96K  /usr
zroot/usr/ports      104K  13.0G   104K  /usr/ports
zroot/usr/src         96K  13.0G    96K  /usr/src
zroot/var           1.28M  13.0G    96K  /var
zroot/var/audit       96K  13.0G    96K  /var/audit
zroot/var/crash       96K  13.0G    96K  /var/crash
zroot/var/log        604K  13.0G   604K  /var/log
zroot/var/mail       320K  13.0G   320K  /var/mail
zroot/var/tmp         96K  13.0G    96K  /var/tmp
zroot/vm             192K  13.0G   192K  /zroot/vm
root@fbhost:~ # df -h
Filesystem            Size    Used   Avail Capacity  Mounted on
zroot/ROOT/default     24G     11G     13G    45%    /
devfs                 1.0K      0B    1.0K     0%    /dev
/dev/gpt/efiboot0     260M    1.3M    259M     1%    /boot/efi
zroot/tmp              13G    188K     13G     0%    /tmp
zroot/home             13G     96K     13G     0%    /home
zroot                  13G     96K     13G     0%    /zroot
zroot/var/mail         13G    320K     13G     0%    /var/mail
zroot/usr/src          13G     96K     13G     0%    /usr/src
zroot/var/log          13G    604K     13G     0%    /var/log
zroot/usr/ports        13G    104K     13G     0%    /usr/ports
zroot/jails            14G    910M     13G     6%    /usr/jails
zroot/var/tmp          13G     96K     13G     0%    /var/tmp
zroot/var/crash        13G     96K     13G     0%    /var/crash
zroot/var/audit        13G     96K     13G     0%    /var/audit
zroot/home/skywalk     13G     30M     13G     0%    /home/skywalk
zroot/vm               13G    192K     13G     0%    /zroot/vm
zroot/jails/ub22       13G     96K     13G     0%    /usr/jails/vm/ub22
 
总结就是:使用zfs list -t all 查看所有zfs信息,把快照snap删除,空间就释放出来了
root@fbhost:~ # zfs destroy zroot/ROOT/default@2024-06-05-18:44:13-0
 root@fbhost:~ # zfs destroy zroot/ROOT/default@2024-06-05-19:12:45-0
  



















