利用回环设备实现NFS磁盘配额

嵌入式系统软件开发过程中经常会使用NFS(网络文件系统)共享文件, 如果多人使用,可能需要做配额管理。quota 当然可以,但有点杀机焉用牛刀的感觉。利用unix的回环设备(loop device) 做配额管理,简单、方便,并且不需要对原来的物理文件系统做任何修改。当然,性能上会有损失(没有评估)。

以Ubuntu12.04 为例, 配置过程如下:

  1. 生成回环文件
  • sudo dd if=/dev/zero of=tony.img bs=1G count=10
  1. 配置回环设备
  • sudo losetup /dev/loop1 ./tony.img
  1. 建立文件系统
  • sudo mkfs.ext4 /dev/loop1
  1. 解除回环设备的映射
  • sudo losetup -d /dev/loop1
  1. 开机自动mount回环设备
  • 编辑 /etc/fstab, 添加新的一行

    /media/sda6/share/tony.img /media/sda6/share/tony ext4 loop, 0 0

  • 挂载回环设备

    • sudo mount -a
  • 利用df命令查看当前文件系统信息, 如过设备被正常挂载, 会有类似信息:

    /dev/loop0 10G  435M  9.1G   5% /media/sda6/share/tony

  1. 编辑 /etc/exports 将回环设备添加到NFS共享目录
  • /media/sda6/share/tony *(rw,no_root_squash)
  • restart NFS server
    • sudo /etc/init.d/nfs-kernel-server restart
  1. 挂载NFS
  • sudo mount -t nfs 172.29.43.183:/media/sda6/share/tony /mnt
  • 利用df命令查看NFS的挂载信息
172.29.43.183:/media/sda6/share/tony   10G  434M  9.1G   5% /media/ipcam_share