利用 Openfiler 构建云端虚拟存储

引言


虚拟化技术是当今 IT 业界最炙手可热的话题,也是当今最具有革命性和创新性的计算机技术之一。伴随着云计算技术的发展,作为支撑云计算技术的核心技术,虚拟化技术的应用模式从最初的服务器整合虚拟化,到现在的桌面虚拟化,网络虚拟化,存储虚拟化等等,正在越来越多的发挥与扩展着它在这一领域的技术价值与应用空间。

本文将介绍一种目前流行的存储虚拟化开源软件 Openfiler。Openfiler 是一个定制化的操作系统,它提供了基于文件的网络附加存储 NAS(Network-Attached Storage)和基于块的存储区域网络 SAN(Storage Area Network)存储解决方案。Openfiler 是基于 rPath Linux 的分发,它是由 GNU General Public License version 2 进行授权的一种自由软件。它的软件接口是基于使用开放源码的第三方软件来提供虚拟存储功能。

Openfiler 的强大之处在于其提供了对多种网络协议的支持,这些网络协议包括:NFS,iSCSI,SMB/CIFS,FTP 和 HTTP/WebDAV 等;对于网络目录的支持,Openfiler 包括了 NIS,Active Directory,LDAP,基于 Windows NT 的域控制器和 Hesiod;对于认证协议的支持,它支持 Kerberos 5 的认证协议;对于分区技术的支持, Openfiler 支持基于卷的分区技术,如本地文件系统的 ext3、XFS 和 JFS 格式,以及实时快照和相应的磁盘配额管理。它通过统一标准的接口,使基于各种网络文件系统协议的共享资源分配变得更容易、快捷与高效。

Openfiler 所提供的强大的虚拟存储功能特性,使其在以动态、灵活、可伸缩为特质的云计算环境中,成为了一个非常有力的云端存储解决方案之一。同时,它也可以作为实验环境下的一种高效的存储模拟解决方案之一,具有很高的成本节约优势和实用价值。本文将通过一个基于 Openfiler 的虚拟镜像创建和配置实例,一步步的引导读者创建基于自己云端环境需求的自定制虚拟存储解决方案。

存储虚拟化概述

存储虚拟化 (Storage Virtualization),简单来说就是通过对底层的存储硬件资源进行抽象化,而展现出来的一种逻辑表现。它通过将实体存储空间(例如硬盘)进行逻辑的分隔,组成不同的逻辑存储空间。它通过一个逻辑存储实体代表底层复杂的物理驱动器,屏蔽掉了单个存储设备的容量、速度等物理特性,而且也屏蔽了底层驱动器的复杂性以及存储系统后端拓扑结构的多样性,从而很大的增强了数据的存储能力,可恢复性和性能表现。

通过存储虚拟化技术,对服务器和应用程序来说,无论后端的物理存储是什么,面对它们的是存储设备的逻辑映像;对于用户来说,他们所面对的是一种物理磁盘的抽象,他们与存储资源中大量的物理特性隔离开来。用户不必去关心实际的后端存储,只需要去专注于管理存储空间本身,用户所看到的逻辑存储单元和本地的硬盘没有什么差别。

因此,存储虚拟化技术与传统技术相比,它具有更少的运营费用和更低的复杂性。它简化了物理存储设备的配置和管理任务,同时还能够充分利用现有的物理存储资源,避免了存储资源的浪费。

Openfiler 简介

Openfiler 是一个定制化的操作系统,它是一个基于 Web 方式进行存储管理的网络存储操作系统。Openfiler 在单一框架中提供了基于文件的网络附加存储(Network-Attached Storage)和基于块的存储区域网络(Storage Area Network)存储解决方案。Openfiler 是基于 rPath Linux 的分发,它是由 GNU General Public License version 2 进行授权的一种自由软件。同时,它的软件接口是基于使用开放源码的第三方软件(例如 Apache、Samba、LVM2、ext3、Linux NFS 和 iSCSI Enterprise Target 等等)。Openfiler 通过将这些开源技术整合到一个统一的架构体系架构中,以一个基于 Web 方式的功能强大的管理界面来提供虚拟存储功能。

Openfiler 的强大之处在于其提供了对多种网络协议的支持,这些网络协议包括:NFS,iSCSI,SMB/CIFS,FTP 和 HTTP/WebDAV 等;对于网络目录的支持,Openfiler 包括了 NIS,Active Directory,LDAP,基于 Windows NT 的域控制器和 Hesiod;对于认证协议的支持,它支持 Kerberos 5 的认证协议;对于分区技术的支持, Openfiler 支持基于卷的分区技术,如本地文件系统的 ext3、XFS 和 JFS 格式,以及实时快照和相应的磁盘配额管理。它通过统一标准的接口,使基于各种网络文件系统协议的共享资源分配变得更容易、快捷与高效。

Openfiler 所提供的强大的虚拟存储功能特性,使其在以动态、灵活、可伸缩为特质的云计算环境中,成为了一个非常有力的云端存储解决方案之一。在生产环境中,它大大的降低了花费在网络存储硬件设备上的部署和维护成本。同时,它也可以作为实验科研环境下的一种高效、低成本的网络存储模拟解决方案,具有很高的成本节约优势和实用价值。在本文的下面章节中,将通过一个基于 Openfiler 的虚拟镜像创建和配置实例,一步步的引导读者创建基于自己云端环境需求的自定制虚拟存储解决方案。

Openfiler 镜像创建实例

Openfiler 提供了多样化的部署安装方式。它既可以作为一个 ISO CD 镜像,以 Bare Metal 方式安装在一个物理服务器上;同时它也可以安装在一个已经预先配置好磁盘镜像的虚拟机中;更为便利的安装方式是 Openfiler 提供了基于不同虚拟机监控器(Hypervisor)的虚拟设备(Virtual Appliance)文件,用户只需把虚拟设备文件直接部署到相应的虚拟化服务器上即可,无需安装过程,预安装好 Openfiler 操作系统的虚拟机就会生成,用户即可进入第二步的系统配置阶段。

Openfiler 支持 x86 和 x86-64 操作系统架构。对于虚拟机监控器它支持了 Citrix 的 XenServer, VMware 的 ESX, QEMU, Virtual Iron 和 Parallels 等等。对于 Bare Metal 的安装方式,它的最小系统配置需求和推荐系统配置需求为表 1。

表 1. 最小系统配置需求和推荐系统配置需求

对于以虚拟机进行安装的方式,Openfiler 基于不同虚拟机监控器的系统配置需求为表 2。

表 2. 基于不同虚拟机监控器的系统配置需求

本文将基于 VMWare ESX4 虚拟化平台和 Openfier 2.3 ISO 镜像以虚拟机的方式安装 Openfiler。Openfiler 提供了两种安装形式:图形界面安装方式和命令行安装方式。本文采用的是图形界面安装方式,整个安装过程大约持续 15-20 分钟。

首先,通过 ESX 虚拟化服务器的客户端软件连接到 ESX 服务器上创建虚拟机,在这里选择虚拟机配置方式为“Typical”。如图 1 所示。

图 1. 选择虚拟机配置方式

接下来输入所要创建的虚拟机的名称,如图 2 所示。

图 2. 输入虚拟机名称

然后选择要创建的虚拟机所对应的虚拟机文件的存储位置,在这里选择的是 ESX 服务器的本地存储。如图 3 所示。

图 3. 选择虚拟机存储位置

然后设置所要创建的虚拟机对应的操作系统类型为“Other Linux”。如图 4 所示。

图 4. 设置虚拟机操作系统类型

接下来是对虚拟机的磁盘进行相应设置。由于本次安装只是示例安装,所以设置虚拟机磁盘大小为 25G。在用户实际安装过程中,可以根据实际具体要求设置虚拟机磁盘的大小。如图 5 所示。

图 5. 设置虚拟机磁盘

最后点解“Finish”完成虚拟机的初始创建过程。当虚拟机创建完成后,接下来要编辑虚拟机的系统配置。其中最重要的一项系统配置是对虚拟机的 CD/DVD ROM 进行配置,设置虚拟机启动时光驱自动加载 Openfiler 的 ISO 镜像文件。其次是对虚拟机的网络进行配置。如图 6 所示。

图 6. 编辑虚拟机系统属性

最后启动虚拟机。在虚拟机的 BIOS 中设置虚拟机启动方式为从 CD-ROM 启动引导虚拟机。如图 7 所示。

图 7. 编辑虚拟机启动方式

当保存虚拟机 BIOS 配置并退出 BISO 后,虚拟机系统就自动进入了 Openfiler 的安装界面。如图 8 所示。

图 8. Openfiler 安装界面

选择点击“Enter”键后,选择“Skip”跳过对 CD 介质的检查过程。如图 9 所示。

图 9. 忽略 CD 检测过程

然后安装过程进入系统键盘配置界面,在这里选择默认键盘设置,点击“Next”。 接下来安装过程进入系统磁盘分区设置。Openfiler 提供了两种分区方式设置:自动磁盘分区方式和手动磁盘分区方式。在这里推荐手动磁盘分区方式,因为这种方式能够更好的自定制满足实际环境需求的系统磁盘分区配置。系统会询问是否初始化磁盘并删除所有数据,根据需要是否保留已有分区或数据。因为此处为空白硬盘,所以选择清除所有数据。在弹出警告对话框中选择“Yes”。如图 10 所示。

图 10. 创建系统磁盘分区

然后安装过程会显示系统当前磁盘分区的初始化信息。如图 11 所示。

图 11. 系统磁盘分区初始化信息

用户需要在当前系统上配置三个磁盘分区:“/boot”,“swap”,“/”。其中分区“/boot”是操作系统内核所在的分区,系统在启动时会从此分区执行操作系统的加载过程;分区“swap”是实现数据从内存交换到系统磁盘的交换分区;分区“/”是操作系统的根分区,操作系统的全部应用程序和库文件都安装在此分区。

首先创建分区“/boot”。点击“New”选项,对相应系统分区进行信息配置。如图 12 所示。

图 12. 创建系统磁盘 boot 分区

在实际的系统配置中,虚拟机系统可能安装有多块不同类型的磁盘。在这种情况下,上面的“Allowable Drives”属性中会出现一个系统磁盘的列表。因此,需要注意的是,在这种情况下只能选择磁盘列表中的第一个磁盘作为分区的创建磁盘。在本示例中,只有一块 SCSI 磁盘 sda。

当全部的系统磁盘分区配置完成后,系统已经准备就绪安装 Openfiler 系统镜像了。本示例中的系统磁盘分区配置信息如图 13 所示。

图 13. 系统磁盘分区配置信息

然后配置操作系统的网络属性。在这里需要设置主机名称和 IP 地址。本示例中 IP 地址设置为固定方式。因为在 Openfiler 安装完成之后没有图形界面,以后对系统的所有配置都是通过 Web 的方式完成,所以把 IP 地址设置为固定方式对以后的系统访问和配置带来很大方便。本示例中的系统网络配置信息如图 14 所示。

图 14. 系统网络配置

接下来是对系统时区信息的设置和系统 root 用户密码的设置。最后点击“Next”开始系统的安装过程。如图 15 所示。

图 15. 安装系统

最后,当系统安装完成后,点击“Reboot”选项重新启动系统。

Openfiler 镜像系统配置

当 Openfiler 系统安装并重启完成后,对系统所有后续的配置过程,都是以 Web 方式配置完成的。这种全部基于 Web 的系统配置方式,使得配置过程变得更加简易,同时也带来了良好的用户体验。首先打开浏览器,输入地址:https://IP:446。注意,此处输入的 IP 地址为在系统安装时所配置的固定 IP 地址。然后使用系统初始默认的用户名和密码进行登陆。用户名为 openfiler,密码为 password。系统初始的用户名和密码可以在第一次登入系统后进行重新设置。如图 16 所示。

图 16. 登录系统管理界面

登入系统后,可以看到当前系统的各种初始化配置信息。如图 17 所示。

图 17. 系统初始化信息

在系统菜单“System”菜单下,可以检查当前系统的 IP 等网络信息设置情况。如果想重新设置网络信息,可以点击“Configure”功能连接对系统网络进行重新配置。如图 18 所示。

图 18. 系统初始化信息

在系统菜单“System”菜单下的“Network Access Configuration”区域,配置允许访问 Openfiler 系统的安全访问控制列表。值得注意的是只有加入到 Openfiler 的网络访问控制列表中的网络或者主机地址,才允许访问 Openfiler 系统所提供的虚拟存储服务。在网络访问控制列表中,既可以配置网段地址也可以配置单个主机地址。在本例填入 192.168.130.0 网段,设置类型为“Share”方式,添加完成后点击“Update”完成系统配置更新。如图 19 所示。

图 19. 配置系统安全访问控制列表

然后点击“Network ACL”标签,将访问控制从默认禁止访问更新为允许访问“Allow”,最后点击“Update”选项更新系统配置。如图 20 所示。

图 20. 更新访问许可

当配置好系统的安全访问控制后,接下来的一步是配置系统磁盘,实现虚拟存储服务。在 Openfiler 中,有三类存储概念:Block Device,Physical Volume 和 Volume Group。其中,Block Device 表示的是实际的物理磁盘;Physical Volume 表示的是物理磁盘的分区,它是组成 Volume Group 的单元;Volume Group 则是由一个或多个物理磁盘分区(Physical Volume)组成,它又是组成 Logical Volume 的单元。

首先点击菜单“Volumes”标签,在右侧的“Volumes section”区域选择“Block Devices”,然后系统会显示当前所挂载的硬盘信息。如图 21 所示。

图 21. 获取系统 Block Device 信息

然后点击磁盘“/dev/sda”,系统会显示当前磁盘的详细分区信息。如图 22 所示。

图 22. 获取系统 Block Device 详细信息

在这里,我们要创建一个新的分区。首先在“Create a partition in /dev/sda”处设置“Partition Type”属性的值为“Physical volume”,在“Ending cylinder”属性处选择默认值,从而设置当前所有的剩余空间划为一个分区,最后点击“Create”选项。如图 23 所示。

图 23. 创建新分区

接着在右侧的“Volumes section”区域选择“Volume Groups”来创建一个卷组。在区域“Create a new volume group”处填写卷组 volume group 的名称为“volume_group_iscsi”,同时勾选刚刚在上一步所创建的物理卷 /dev/sda4,最后点击“Add volume group”。如图 24 所示。

图 24. 创建新卷组

接下来在右侧的“Volumes section”区域选择“Add Volume”选项,在刚刚创建好的卷组“volume_group_iscsi”中新创建一个 iSCSI 卷。注意在属性“Filesystem / Volume type”中设置属性值为“iSCSI”。如图 25 所示。

图 25. 创建新 iSCSI 卷

在右侧的“Volumes section”区域选择“Manage Volumes”选项,可以看到刚刚创建的 iSCSI 卷信息。如图 26 所示。

图 26. 查看新 iSCSI 卷信息

当 iSCSI 卷创建完成后,接下来是开启“iSCSI target server”系统服务。点击“Services”菜单,在右侧的“Services section”区域选择“Manage Services”。然后将系统服务列表中的“iSCSI target server”设置为“Enabled”状态,从而使得系统能够对外提供基于 iSCSI 协议的虚拟存储服务。如图 27 所示。

图 27. 开启 iSCSI 服务

接下来是添加一个 iSCSI Target。首先点击菜单“Volumes”,然后在右侧的“Volumes section”区域中选择“iSCSI Targets”。在“Target Configuration”子菜单中的“Add new iSCSI Target”区域,选择列出的“Target IQN”。最后点击“Add”按钮,从而添加了一个 iSCSI Target。注意,此处的 Target IQN 信息在后面的对 ESX 服务器的存储配置过程中会用到。如图 28 所示。

图 28. 添加 iSCSI Target

接下来点击“LUN Mapping”子菜单,保持其余默认选项,点击“Map”选项。从而实现从 LUN 到刚刚配置好的 iSCSI Target 之间的映射。如图 29 所示。

图 29. 配置 LUN Mapping

至此为止,在 Openfiler 系统上对 iSCSI 虚拟存储的配置过程完毕。

Openfiler 云端存储配置

云计算离不开存储,存储是云计算中的基础架构和核心组成部分。在本小节中,将通过一个云端存储配置实例——在云端的虚拟化监控器(Hypervisor)上配置 Openfiler 提供的 iSCSI 虚拟网络磁盘服务,介绍如何利用 Openfiler 这个强大的存储服务软件实现云端的共享存储功能。

本示例将基于 VMWare ESX4 虚拟化监控器版本进行配置。首先通过客户端软件 VMWare vSphere Client 连接到 ESX 服务器。然后选中左侧的 ESX 服务器,接着选中右侧标签中的“Configuration”标签。在左侧“Hardware”区域的“Networking”属性下,选择“Add Networking”。 在弹出对话框中选中“VMkernel”选项,然后点击“Next”。如图 30 所示。

图 30. 配置 ESX 存储网络

在本配置实例中,此次存储网络配置基于当前 ESX 服务器上已有的交换机 vSwitch0。如图 31 所示。

图 31. 配置 vSwitch 信息

设置所要配置的网络的端口组属性。填写网络标签名称,然后点击“Next”。如图 32 所示。

图 32. 配置端口组信息

配置网络连接属性。注意,在“IP Address”属性中所填入的网络地址必须是在前面章节中配置 Openfiler 的“Network Access Configuration”时所设置的安全访问连接列表中所允许的网络地址,否则 ESX 服务器无法访问 Openfiler 所提供的 iSCSI 虚拟网络磁盘服务。如图 33 所示。

图 33. 配置网络连接属性

最后检查此次网络配置的摘要信息,然后点击“Finish”完成此次网络配置的过程。接下来需要对 ESX 服务器的存储适配器进行设置,配置 ESX 服务器的 iSCSI 存储适配器。首先选择标签“Configuration”,选中左侧“Hardware”区域中的“Storage Adapters”。然后选中右侧“Storage Adapters”区域中的“iSCSI Software Adapter”,点击下面的“Properties”选项。在弹出的配置对话框中点击“Configure”选项,然后把“Status”属性变为“Enabled”状态。如图 34 所示。

图 34. 配置 iSCSI 适配器

在 ESX 服务器上完成相应的配置更新后,再次点击配置对话框中的“Configure”选项。在弹出的常规属性对话框中,对“iSCSI Name”属性进行配置,输入 iSCSI 的名称。需要注意的是,在这里设置的 iSCSI 的名称为在前面章节中配置 Openfiler 时所添加的 iSCSI Target 的 Target IQN 信息。如图 35 所示。

图 35. 配置 iSCSI Name 属性

当点击“OK”后,系统会提示 ESX 服务器将要基于这次配置变化对主机总线适配器进行重新扫描,在这里点击“Yes”选项。如图 36 所示。

图 36. 扫描主机总线适配器

然后选中标签“Dynamic Discovery”,点击“Add”,在弹出的对话框中填入 iSCSI 服务器的地址。注意,在这里填入的地址为前面章节中配置 Openfiler 时设置的固定 IP 地址。端口选中默认端口,最后点击“OK”。如图 37 所示。

图 37. 添加 iSCSI 服务器

当 ESX 服务器完成重新扫描后,可以看到已经配置好的 iSCSI Target。如图 38 所示。

图 38. iSCSI 信息

在对 ESX 服务器的 iSCSI 适配器配置完成后,接下来是为 ESX 服务器添加相应的 iSCSI 存储。首先选择标签“Configuration”,选中左侧“Hardware”区域中的“Storage”,点击“Add Storage”。设置“Storage Type”属性为“Disk/LUN”,点击“Next”。如图 39 所示。

图 39. 添加 iSCSI 存储

接着选择刚刚配置的 iSCSI 网络存储,点击“Next”。如图 40 所示。

图 40. 选择 iSCSI 存储

此时 iSCSI 磁盘处于初始化空白状态,点击“Next”。如图 41 所示。

图 41. iSCSI 存储布局

然后设置数据存储的名称,点击“Next”。接下来用户可以根据不同应用环境的需要调整新建存储的“Maximum file size”属性。此处选择默认格式化大小设置,点击“Next”。 最后确认新建存储配置信息无误后,点击“Finish”完成新建存储过程。如图 42 所示。

图 42. iSCSI 存储配置概览

当 ESX 服务器对新建的 iSCSI 数据存储服务配置完成后,可以看到新建 iSCSI 存储的详细信息如图 43 所示。

图 43. ESX 服务器上的 iSCSI 存储 

最后,为了验证在 ESX 服务器上配置的基于 Openfiler 的 iSCSI 存储服务是否成功,在此通过从本地上传一个测试文件进行验证。如图 44 所示。

图 44. 验证 ESX 服务器上的 iSCSI 存储 

从上面可以看到测试文件可以成功的上传并存储在新建的 iSCSI 存储服务上。至此为止,在 ESX 服务器上成功的配置了基于 Openfiler 的 iSCSI 存储服务,接下来可以基于此 iSCSI 存储服务在 ESX 服务器上进行云端虚拟机的创建过程了。

结束语

通过本文的介绍 , 相信您对存储虚拟化及开源存储虚拟化软件 Openfiler 有了初步的了解。通过本文介绍的一个基于 Openfiler 软件的 iSCSI 存储服务的创建和配置实例,您可以轻松利用 Openfiler 构建自己云计算环境下的数据虚拟存储系统,充分享受存储虚拟化所具有的独特优势。

相关主题

  • 参考 Openfiler官方网站,查看 Openfiler 的最新信息。

  • 参考 developerWorks云计算专区,查看最新的云计算信息。

  • 随时关注 developerWorks 技术活动和网络广播。

  • 访问 developerWorks Open source 专区获得丰富的 how-to 信息、工具和项目更新以及最受欢迎的文章和教程,帮助您用开放源码技术进行开发,并将它们与 IBM 产品结合使用。


来至:https://www.ibm.com/developerworks/cn/opensource/os-cn-openfiler/