第零章:介绍
storage:存储,可供倒入数据的无底洞。
打孔卡到磁带到磁盘到闪存驱动器,都是为了存储数据发明出来的。
FreeBSD甚至支持打孔纸带。
一旦你选择了一种物理介质,就必须决定如何使用它。不同的操作系统发展出了完全不同的文件系统,可以将数据填充到各类介质上。
因应特殊目的开发的文件系统,比如dvefs和内存文件系统,开辟了许多存储可能性,比如iSCSI和网络文件系统以及各种复制技术。
本书是关于所有其他文件系统、存储方式和数据存储技巧的。
本书针对特殊情况的文件系统。
作者假定读者了解FreeBSD的GEOM存储子系统。不需要了解如何辨析存储类,但假设读者熟悉glabel和geom show等命令。
一些文件系统假设磁盘使用主引导记录(Master Boot Record——MBR),而另一些仅在全局唯一ID(Globally Unique ID——GUID)分区表(GPT)上工作。
同样,读者需要了解Unix文件系统(UFS)的基础知识,包括/etc/fstab等关键系统文件。
如果想要了解iSCSI,则最好了解一下TCP/IP和存储硬件。
在SSH模块中使用用户空间文件系统(Filesystem in Userspace——FUSE)支持意味着读着应该了解启动和停止服务,以及SSH。
文件系统需要内核中的支持。这种支持可能包含在GENERIC内核或内核模块中。读者需要了解如何加载、卸载和查看内核模块。
本书以FreeBSD10.2为蓝本。
最后,任何涉及文件系统的复杂工作都需要shell脚本。
我们通常使用mount命令将文件系统挂载到目录树。不同的文件系统会有不同的mount方式。
mount命令假定任何本地磁盘分区都使用UFS。如果你视图挂载一个不同的文件系统,会收到错误提示:
xxxxxxxxxx
# mount /dev/da4s1 /mnt
mount: /dev/da4s1: Invalid argument
/dev/da4s1存在,但是它不包含UFS或UFS2文件系统。你需要告诉mount这个分区的文件系统是什么类型的。使用-t选项指定指定文件系统的类型,或使用特定于某文件系统类型的mount命令。
每个文件系统都有一个名称,列在mount或文件系统的手册页里。
xxxxxxxxxx
# mount -t msdosfs /dev/da4s1 /media
有些文件系统(但不是所有的)会有特定于该文件系统类型的mount命令,比如:
xxxxxxxxxx
# mount_msdosfs /dev/da4s1 /media
如果非UFS文件系统在/etc/fstab中有一个条目,mount命令可以按挂载点挂载该文件系统:
xxxxxxxxxx
# mount /media
使用umont命令卸载文件系统。此时不要指定文件系统类型。只要给出其挂载点即可。
我们将从本地连接的文件系统开始,例如Linux文件系统、ISO 9660(用于CD)和可移动介质。然后,我们将介绍仅存在于运行系统内存中的逻辑文件系统。这包括内存文件系统、devfs(5)、联合挂载等。我们将继续讨论网络文件系统,包括NFS、iSCSI和CIFS。最后,我们将讨论自动挂载器和FUSE,您可以部署它们来将存储连接在一起。
本书不涉及磁带存储,或打孔纸带。即使是对于一本关于专业文件系统的书,它们也过于特殊了。