免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1177 | 回复: 0
打印 上一主题 下一主题

通用线程: 高级文件系统实现者指南,第 13 部分 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-28 14:44 |只看该作者 |倒序浏览
通用线程: 高级文件系统实现者指南,第 13 部分
欢迎阅读高级文件系统实现者指南的最后一篇专栏文章。在本文中,Daniel 继续探讨他在
        
EVMS 简介
中所遗留下来的内容,并一步一步地指导您使用
        evmsn (EVMS 的基于 ncurses 的管理工具)的过程。他向您展示了如何使用 evmsn
来利用新硬盘、对它分区并在其上创建 LVM 卷。
接着,他向您介绍了重要的 EVMS 概念,当您继续研究此功能强大的技术时,您会发现这些概念是必不可少的。
      
      
新磁盘
      
开始使用 EVMS 的最佳方法是找一个空闲的硬盘,并将其安装到系统上。然后,就可以为您重要的内容在这个空闲硬盘上创建和删除分区和卷,而不必担心您的数据会遭到破坏。下面,通过引导 Gentoo Linux Game CD,我遵循了这个方法,这张 CD 实际上正好包含了 EVMS 1.0.1 支持。我使用 vmware来引导这张 CD,并将我的虚拟 PC 配置成包含一个 SCSI 磁盘,sda。当出现带有“login:”提示符的欢迎界面时,输入
root,并在密码提示符下按一下 Enter 键,这样我就以 root 用户登录到这个生动的基于 Gentoo Linux CD
的系统。然后输入 evmsn 启动 ncurses 版本的 EVMS 管理界面。当然,也可以选择仅仅将一个新硬盘挂装在已有的支持 EVMS 的系统上。另外,如果您有 X,那么可以考虑使用
        evmsgui ,这是一个基于 GTK+ 的 EVMS 管理界面。
尽管
        evmsn 运行在使用 ncurses 的控制台上,而
        evmsgui 使用更现代的、基于 GTK+ 的界面,但这两个程序的界面非常相似。了解了其中一个,则很容易转到另外一个。
      
      
现在,让我们开始使用 EVMS。由于我正在用这个控制台,所以我输入
        evmsn ,出现以下屏幕:
      
      
        
图 1. EVMS 管理工具
        

      
      
在这个屏幕上,可以看到
        /dev/evms/sda ,它是我系统上唯一的卷。如果您在自己的机器上运行 EVMS,那么肯定会看到至少列出了两个额外的
        /dev/evms/---- 项。通过使用上下方向键,可以在每个设备节点间移动。
      
      
您可能对这些
        /dev/evms/--? 设备节点是什么正感到疑惑。乍一看,似乎它们可能仅仅是 /dev 中各个设备节点的副本;例如,
        /dev/evms/sda 仅仅与更传统的
        /dev/sda 设备节点一样,表示同一个磁盘。那么,在
        /dev/evms/ 目录中创建重复的设备节点有什么意义呢?回答是:EVMS 的工作之一是为系统上所有的卷创建统一的名称空间,而且它将这个名称空间创建在
        /dev/evms 之下。
所以,EVMS 检测到 sda 并识别出它应该属于 EVMS 名称空间,因此 EVMS 在
        /dev/evms 中创建了相应的设备节点。现在正是一个最佳时间来指出:如果您没有在用 devfs,那么您可能需要运行
        evms_devnode_fixup 程序来更新
        /dev/evms 名称空间。
      
      
以下是另一段巧妙却又很重要的事实。尽管 EVMS 可以看到系统上所有的存储资源,但它可能不会为它找到的所有资源都创建
        /dev/evms/ 设备节点项。例如,在我的开发系统中有两个硬盘
        /dev/hde 和
        /dev/hdg 。但是,没有对应的
        /dev/evms/hde 和
        /dev/evms/hdg 设备节点。当我查看
        /dev/evms/ 时,发现的唯一设备节点是
        /dev/evms/hde1 ,它表示第一个硬盘上的引导分区。现在,为什么是
        /dev/evms/hde1 而不是
        /dev/evms/hde
呢?唔,看来 EVMS 十分智能,它已识别出 hde 和 hdg 没有将其自身加入到卷中;相反,EVMS 可以看到我已经对 hde 和 hdg
进行了分区。它还可以看到我已用这些分区创建了 LVM 逻辑卷。/dev/evms/hde2 分区上的空间正用于更高级的存储对象,所以 EVMS
没有创建“ /dev/evms/hde2 ”设备节点。相反,它识别出我已创建的 LVM 卷,并在
        /dev/evms/lvm 下为这些卷创建了设备节点:
      
      
清单 1. /dev/evms/lvm 下的设备节点

      
$ ls /dev/evms/lvm/*/* -l
brw-rw-rw-    1 root     root     117,   2 Dec 31  1969 /dev/evms/lvm/mainvg/root
brw-rw-rw-    1 root     root     117,   3 Dec 31  1969 /dev/evms/lvm/raid0vg/swap
brw-rw-rw-    1 root     root     117,   4 Dec 31  1969 /dev/evms/lvm/raid0vg/tmplv

      
这说明了 EVMS 遵循的一个重要原则:它只为它在系统上找到的
        最终(而不是临时)存储对象创建设备节点。EVMS 将这些最终存储对象统称为“逻辑卷”,而不管它们实际上正好是磁盘、分区,还是 LVM 逻辑卷。正如稍后将看到的,当我们使用
        evmsn 和
        evmsgui 管理工具时,在能看到
        /dev/evms/ 中 EVMS 卷相对应的设备节点之前,需要显式地从存储对象上创建 EVMS 卷。假如我们不打算直接使用存储对象,而是计划用它来创建更高级的存储对象,在将存储对象转换成卷之前,EVMS 将不会为它创建设备节点。EVMS 主张在创建
        /dev/evms 设备节点之前先创建卷,这样可以为我们提供保护,以免在输入
        mke2fs /dev/evms/foo 时,会在不应该使用的设备节点上创建文件系统。由于存在这个行为,所以我们可以获得保证,即
        /dev/evms/ 下的每个设备节点都包含或打算包含文件系统或交换空间。
      
      
尽管这个行为非常巧妙、有用而且还减少了混乱,但确实需要花些功夫才能领会它。为了真正理解这一点,以下是在我的开发工作站上运行的 evmsgui 的抓屏。正如您可以看到的,在我的存储资源中,只有四项被配置为卷,而且它们都被用于文件系统或交换空间。
      
        
图 2. evmsgui 实用程序
        

      
      
现在,回到 vmware EVMS 配置示例。如果您看了本文的第一个抓屏,那么会注意到,尽管
        /dev/evms/sda 为空,但该磁盘还是显示为卷。这只是“细心的” EVMS 的另一个示例;尽管它不能检测到磁盘上任何有效的存储资源类型,但它还是将整个磁盘标记为卷,以便在开始使用该磁盘上的存储空间之前必须先
        删除这个卷。这是一个极好的行为,因为理论上磁盘
        可能包含一些 EVMS 完全不能识别的重要数据。
通过采用这个方法,EVMS 就不会让人认为磁盘为空,也就不可能愚弄管理员(例如使他覆盖原始的 FreeBSD 卷),从而可以避免有风险的行为。这再一次说明了 EVMS 很巧妙,但乍一看它的行为稍微有点费解。
      
      
当然,在我这个特定情况下,
        /dev/emvs/sda
        空,而且我需要对它进行分区。为此,我需要按如下那样先破坏
        /dev/evms/sda 卷。首先,选中
        /dev/evms/sda 之后,按一下 Enter 键:
      
      
        
图 3. 破坏卷
        

      
      

如您可以看到的,这一操作产生了一个子菜单,其中有查看有关卷的细节、删除存储对象上的卷或破坏卷等选项。“破坏卷”和“删除存储对象上的卷”之间有一个
很重要的区别;如果选择了前者,那么卷(以及该卷下的任何子对象)将被分解成它们的基本组件。但是,如果选择只删除卷,那么该卷将被破坏,但其子对象(如
果存在的话)将完好无损地保留下来。“删除”和“破坏”之间的区别类似于剥去一层洋葱皮和将整只洋葱放到食品加工机中。
      
但是,在这个特定的例子中,我的洋葱只有一层,所以这两个选项将完成相同的事情。我决定选择“Destroy the
volume”;在确认了我的选择并按任意键以返回到卷列表之后,现在您会看到这个操作的结果:“No logical volumes found”。
      
这个特定的视图突然变得非常令人讨厌,所以我将更改它。
按一下“4”将弹出一个选择视图的子窗口。刚才,我在“Logical volumes”视图;现在转到“Available topmost
storage
objects”。完成选择后,现在我们能看到“sda”又在我们的列表中了!但与前面的操作不同,我们不查看卷,而是查看存储对象。如果接着做下去,对
这个存储对象按一下 Enter 键,那么您将看到可以在“sda”上创建几个事物,其中包括一个 EVMS 或兼容性卷。
      
但是,我们真的不想这样做 — 如果我们想在 sda 上创建卷,应该回到本文开始的地方,即首次装入
        evmsn 时,一个卷包括了整个磁盘。相反,我想创建分区,
        然后将分区转换成卷。为此,我按一下“4”(来选择视图),然后选择“Logical disks”。这里我看到了逻辑磁盘“sda”。是的,在“sda”存储对象和“sda”逻辑磁盘之间
        存在
个重要的区别。
把“sda”作为存储对象来处理,我们可以将它转换成卷,或使用它来构建更高级的存储对象。但把“sda”作为磁盘来处理允许我把磁盘分割成多个分区(在
EVMS 的行话中称为“段(segment)”),这些分区反过来可以用作存储对象。为此,我按一下 Enter
键,弹出一个菜单,其中提供对磁盘分配段管理器的选项:
      
        
图 4. 分配段管理器
        

      
      
现在,如果
        与分区是一回事,则您可能想知道
        段管理器
什么。可以将段管理器比作“分区方法”或方案。一旦我们选择了段管理器,EVMS
会在磁盘上存放一些元数据,同时创建主引导记录并将磁盘上的剩余空间标记为“freespace”,使之用于新段。要划分新段,可以从屏幕的菜单上选择
“DefaultSegMgr”,再按一下 Enter 键,然后按下空格键。选择“sda”作为接收段管理器的对象。然后,再按一下 Enter
键,选择磁盘的类型为“Linux”(选项中还有“OS/2”),并按一下 Enter
键继续。按下一个键后,现在我按一下“4”(选择视图),然后选择“Disk Segments”以查看我已创建的新段:
      
        
图 5. 创建新段
        

      
      

在我的磁盘有一个主引导记录,然后准备创建新的分区,即 EVMS
行话中的“段”。当我创建新段时,“sda_freespace1”段的大小将减少;如果我将磁盘上所有可用空间都用于创建分区,则
sda_freespace1 段将完全消失。如果硬盘上的可用存储空间确实完全映射到我选择的分区大小,则也可能继续保留剩余的很小的
sda_freespace1。
      
现在,为了创建那些段,当鼠标停留在“sda_freespace1”上时按一下 Enter
键,随后选择“Create a New Segment”。接着,选择 DefaultSegMgr 插件,并通过按一下空格键来接受使用
sda_freespace1 对象,随后按一下 Enter
键。接着,在磁盘的开始部分,创建一个很小的引导分区,用来保存内核。为此,我将按两次空格键,然后输入“100”以将分区大小设置为 100
MB,接着在 Bootable 选项上按两次空格键来将“Bootable”设置为真。
最后,按一下 Enter
键以创建新的分区。重复这些步骤,然后可以创建用于文件系统的其它分区和交换分区。一些注意事项:如果需要创建的分区多于四个,那么请记住在创建引导卷之
后切换掉“Primary Partition”选项。还要记住在创建交换分区时,将“Partition Type”设置为“Linux
Swap”。
      
最后一步是在“sda1”、“sda2”和“sda3”上按一下 Enter
键。会出现一个菜单,其中会显示“Create Compatibility Volume from the
Segment”的选项。在选择这个选项之后,段将被配置成包含一个可以使用的逻辑卷,这意味着它现在在 /dev/evms/ 下有一个设备节点。另外,因为我选择创建
        兼容性卷,所以即使刚好用非 EVMS 内核重新引导了系统,也可以使用新卷。如果选择了“Create EVMS Volume”,那么这就是另外的情况了。请注意 EVMS 版本 1.1.0 及其更高级版本允许您将兼容性卷转换成 EVMS 卷,反之亦然。
      
      



结束语
      

此,您应该掌握 EVMS 了吧,通过使用 EVMS,我已经对一个系统磁盘进行了分区。
尽管这不是一个惊天动地的成就,但在您尝试如创建存储容器、LVM 逻辑卷、RAID
卷、快照以及其它吸引人的事物之前,这样一次经历将有助于向您提供所需的 EVMS
基础知识。当然,本文中我没有留出篇幅涉及这些主题,但我希望在明年能陆续讨论其中某些 EVMS
应用程序。但首先,在讨论其它话题之前,先结束“高级文件系统实现者指南”。希望您喜欢这次旅行:)
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/9465/showart_161517.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP