对话UNI新型文件系统简介13331.pdf
《对话UNI新型文件系统简介13331.pdf》由会员分享,可在线阅读,更多相关《对话UNI新型文件系统简介13331.pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 对话 UNI 新型文件系统简介 Lele was written in 2021 在 UNIX 中,所有东西都是文件,但是并非以相同的方式存储每个文件。文件系统决定在介质上如何分解并组织文件。在过去,介质意味着磁带或磁盘。但是,文件系统现在可以把任何源 远程服务器、存档文件甚至其他文件系统 “翻译”为虚拟介质。本文介绍几种新式的文件系统。简介有句老话说:“在 UNIX 中,所有东西都是文件”,这种说法很准确。从概念上说,每个 UNIX 资源都是一个简单的文件,可以打开、读和/或写它。您的实验数据、shell 启动脚本、UNIX 内核、主目录、每个网络套接字和/bin/ls 可执行程序等等都是
2、文件。常用缩略词 SFTP:安全传输协议 SSH:安全 Shell 但是,每个文件并不相同。实验数据可能是高度定制的数据库。shell 脚本是文本文件,但是有一个重要的特征:以?!#(常常称为?shebang)开头的行指出由哪个应用程序解释此文件。内核和所有可执行程序都是二进制文件,它们都采用可预知的系统工具可操纵的特定格式。目录是用于内容编目的特殊索引。另外,每个文件并非以相同的方式存储。文件的结构和大小取决于底层文件系统?即把文件数据存储到物理设备上的子系统。相同的数据 比如同一文件的两个拷贝 在不同的文件系统上以不同的方式组织。每个文件系统规定自己的存储战略,可能是为满足特定的条件而设计
3、的。例如,一种文件系统可能是以提高速度为目的而优化的,另一种文件系统偏重高效地使用空间,还有一种文件系统偏重于防止数据丢失或损坏。通常,对于部署哪种文件系统,并没有简单的答案:必须分析自己的存储需求,选择能够满足目标的文件系统或文件系统组合。UNIX(和许多软件商)提供很多种文件系统,所以一定能找到适合自己需要的文件系统。列出适用于 UNIX(在许多情况下也适用于 Linux)的几种文件系统。表 1.UNIX 文件系统 文件系统 优点 Zettabyte 文件系统(ZFS)实质上规模无限的文件系统(1?zettabyte等于 270字节),可以使用常见的现成的存储介质构造它。ZFS 还可以在写
4、数据时压缩数据,从而进一步扩大介质容量。网络文件系统(NFS)这是 UNIX 的出色特性之一,NFS 让远程文件系统看起来像是本地的。NFS 非常适合共享数据。日志文件系统(JFS)JFS 和许多替代品保留对每个文件所做的更改的日志。当系统崩溃或损坏时,“重播”日志以恢复文件。B 树文件系统(Btrfs)Btrfs 是最新的文件系统之一,是未来的 Linux 版本的默认文件系统,它通过维护数据和元数据校验和来保证持久性。Btrfs 还提供快照并可以混合使用几乎任何大小的设备。您自己的文件系统通常,文件系统要求相应地调整介质,所以把一种文件系统改为另一种通常要使用格式化的物理备份驱动器,还需要很
5、长的恢复和检验过程。显然,这样的更改很复杂,只能由系统管理员执行。但是,许多 UNIX 和 Linux 内核最近的一项扩展让任何用户都可以创建和使用多种文件系统,不需要特殊的特权。这个扩展称为?FUSE,即Filesystem in User Space。可以使用这种软件非常轻松地创建新的文件系统。从 FUSE 派生的文件系统可以通过 SFTP 挂装文件;自动地扫描文件中的病毒;像本地驻留的数据文件一样操作只读的 CD-ROM 光盘。让我们在一个常见的操作系统平台上安装 FUSE,研究任何用户现在都可以使用的一些新型文件系统。现代的 UNIX 和 Linux 内核通常都包含对 FUSE 的支持
6、,所以构建此软件的过程与构建任何实用程序代码相似。必须下载软件包,解压它,运行配置脚本以探测系统的功能,构建并安装代码。给出用于安装 FUSE 的代码。清单 1.安装 FUSE$wget fuse2.8.42.8.42.8.4configure$make$sudo make install 到本文发表时,最新版本是 FUSE 2.8.4。一定要从 FUSE 项目主页下载最新代码(见中的链接)。编译之后,FUSE 包安装构建新的 FUSE 文件系统所需的很多库和名为fusermount的应用程序,这个应用程序用于挂装和卸载 FUSE 文件系统。除了通常提供给?mount 命令的选项之外,fuse
7、rmount 还有几个特殊选项。自制 NFS安装基础代码之后,可以继续安装 FUSE 文件系统。我们要尝试的第一个 FUSE 文件系统是 SSHFS,它是一种基于 SFTP 的文件系统。只要服务器支持 SSH(大多数服务器都符合这个条件),就可以通过 SSHFS 把任何远程目录挂装为本地文件系统。在继续操作之前,要确认系统上有?Glib 和?Gthread。如果系统上有 GNOME,很可能有这些库;否则,从源代码或通过操作系统的本机包管理器安装它们。(Debian Linux 系统有 Aptitude。Red Hat Linux 系统提供?rpm、yum 和 YaST。)给出安装 SSHFS
8、的代码。清单 2.安装 SSHFS$wget projects/fuse/files/sshfs-fuse/tar xzf cd$./configure$make$sudo make install 如果运行 Ubuntu 或者 UNIX 或 Linux 的其他变体,您的发行版可能提供所有软件包的预构建二进制代码。例如,在 Ubuntu 上,目前可以用以下命令安装列出的所有 FUSE 软件:$apt-get install fuse-utils libfuse2 sshfs 如果您依赖的代码是最新的,还可能能够用?apt-get install sshfs 命令安装 SSHFS。安装了 FUS
9、E 库和 SSHFS,就可以把能够通过 SSH 访问的任何远程目录挂装为本地文件系统(见?)。通过组合?ssh 和 mount,提供远程系统的名称、登录凭证、希望挂装的远程目录和本地挂装点(可以是任何本地目录)。清单 3.把能够通过 SSH 访问的目录挂装为文件系统$ssh ls bin Documents lib Media Pictures Sites tmp Desktop Downloads Library Movies projects Source Documentation Dropbox local Music Public src$cd$mkdir-p mounts/exam
10、ple$sshfs:/home/me mounts/example$cd mounts/example$ls bin Documents lib Media Pictures Sites tmp Desktop Downloads Library Movies projects Source Documentation Dropbox local Music Public src 如您所见,现在可以像本地文件一样方便地使用远程目录的内容。如果您是使用多个系统的开发人员,SSHFS 让您能够用本地命令 比如cp、make 等 操作远程文件。可以输入?fusermount-u/some/mount
11、/point以卸载 FUSE 文件系统。因为 FUSE 文件系统的表现就像一般的文件系统一样,所以也可以输入umount/some/mount/point。另一个远程文件系统变体称为?S3FS。S3FS 并不使用您自己的远程服务器和 SFTP,而是把 Amazon Simple Storage Service(Amazon S3)bucket 挂装为本地文件系统。S3FS“自然、透明地在 S3 中”存储文件,还可以启用本地缓存以尽可能减少下载量。最大文件大小是 5GB。与 SSHFS 一样,可以下载并构建源代码,然后马上就能使用它。注意:S3FS 包依赖于?cURL 库开发头文件和 LibXM
12、L2 库。给出安装 S3FS 实例的代码。清单 4.安装 S3FS$wget tar xzf cd s3fs$make$sudo make install 假设您已经有一个 Amazon S3 账号,账号提供访问密钥和秘密访问密钥,就可以用以下命令挂装自己的任何 bucket:$s3fs bucket_name-ouse_cache=/tmp-o accessKeyId=your_access_key -o secretAccessKey=your_secret_access_key/mnt 有了 S3FS,就可以把整个 Git 存储库放在 Amazon S3 上,或者使用?rsync 在 A
13、mazon 的存储系统上存储备份。访问任何存档FUSE 的另一个重要工具是?archivemount,这个实用程序可以把很多形式的存档挂载为本地文件系统,包括 tarball(即用 gzip 压缩的 tar 存档)。假设系统上有?libarchive,就可以快速地构建?archivemount,见?。清单 5.安装 archivemount$wget 0.6.1 tar xzf 0.6.1 cd archivemount-0.6.1$./configure$make$sudo make install 例如,可以使用?archivemount 把它自己的 tarball 挂装为文件系统。给出代
14、码。清单 6.把 tarball 挂装为文件系统$tar tfz 0.6.10.6.10.6.10.6.10.6.1 mkdir-p/mnt/tgz$archivemount 0.6.1/mnt/tgz$cd/mnt/tgz/archivemount-0.6.1$ls configure depcomp CHANGELOG install-sh missing COPYING README 与 SSHFS 相似,archivemount 为 tarball 提供与本地文件系统相似的无缝的访问。顺便说一句,如果在 tarball 的“文件系统”中修改、删除或添加任何文件,那么当卸载 FUSE 文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对话 UNI 新型 文件系统 简介 13331
限制150内