对存储系统发挥特殊作用的文件系统 2006年5月 - 北京
存储系统当前是信息系统建设的核心 在直连存储系统的时代,应用系统以计算机为中心,存储只是外设,数据是存储孤岛 在存储网络时代,数据成为信息系统的核心,应用系统充分挖掘数据的价值,服务器成为存储系统的外设
文件级在存储系统中的位置 应用系统 操作系统 文件系统 RAID控制 磁盘读写 文件级传输:应用系统的I/O逻辑请求,它是文件系统的输入。是应用系统要求存储做什么的逻辑请求。 文件系统决定数据(包括META数据)在磁盘上的存放格式和位置,这种格式和位置又决定磁头的移动方式。 块级传输:应用系统的I/O物理请求,它是文件系统的输出。是怎么对存储操作的数据块请求。 RAID控制使文件系统看到一个大逻辑盘。 它不管磁盘格式。 应用系统 操作系统 文件级传输 文件系统 块级传输 RAID控制 磁盘读写
从应用系统的I/O调用看存储模式 文件系统对存储系统的效率有举足轻重的作用 应用系统 操作系统 文件系统 RAID控制 磁盘读写 NAS FC SAN 磁盘读写
SAN和NAS存储模型的比较 应用服务器 应用服务器 应用服务器 应用服务器 文件系统 文件系统 RAID 文件系统 RAID 文件系统 FC 交换机 以太网交换机 RAID 文件系统 RAID 文件系统 RAID
误区之一:带宽决定一切 人们经常高估带宽的作用。他们一看到网络变慢,就想到是带宽不够了,其实往往是其他原因。我个人还从来没有看到因为带宽不够需要从2-Gbps生到4-Gbps的情况。 Quite often people are not exceeding their bandwidths. They see a network slowdown and think they are exceeding their pipeline, but often it is something else. I’m not yet personally seeing anyplace where the need to exceed 2-Gbps is a reason to push for 4-Gbps. 随着4-Gbps产品价格下落,对大映像文件存取所用的SAN会是最好的选择。但对于象数据库这样的应用所用的SAN来说,增添的性能是多余的。 With the price of 4-Gbps products expected to fall, it will be the best alternative for installing new SANs, or for existing SANs where large imaging or R&D files are stored and accessed. But for existing SANs used for such applications as databases, the extra performance may not be necessary. - 摘自“IBM Latest Vendor To Throw Hat Into 4Gbps Ring” CRN 5-9-05
文件系统(1) 什麽是文件系统?计算机的文件系统是任何信息管理系统的基本元素。它是处理过的信息最终被放置的地方。关键应用系统的客户依靠文件系统得到快速、不间断的可靠的数据访问 。 – VERITAS 指数据(包括文件和metadata)在存储介质上的组织管理模式,以便能快速可靠地存取数据。文件系统是最初的存储“虚拟者”。每个操作系统都有自己的文件系统。例如 操作系统 所支持的文件系统 MS-DOS, Windows 95 FAT16 Windows 95,98,Me FAT16,FAT32 Windows NT,2000,XP NTFS,FAT16,FAT32 Linux Ext2,FAT32,FAT16
文件系统(2) 不同的文件系统有不同的格式。例如 文件系统 最长文件名 最大卷大小 最大文件大小 FAT16 8 2GB* 2GB 255 2TB 4GB NTFS 16TB Ext2 4TB
不同的FS有不同的存储效率 WAFL – Writes to nearest available free block ... Berkeley Fast File System/Veritas Fast File System/NTFS – Writes to pre-allocated locations (data and metadata) ...
文件系统对I/O效率的影响 文件系统决定了磁头如何读写磁盘 磁头是毫秒级操作,最大限度地减少磁头臂的平均移动次数,是提高读写效率的关键
WAFL 大目录处理 对谁有用? 大目录环境每秒创建数 大邮件目录 新闻 Directory Size SunOS NetApp 2.0 1000 30 113 122 5000 22 68 123 10000 16 40 20000 12 14
Copy-on-Write技术 (1) Snapshot卷 数据卷 需要建立快照卷
Copy-on-Write技术 (2) Snapshot Volume Data Volume 必须进行数据拷贝
Copy-on-Write技术 (3) Snapshot Volume Data Volume
NetApp 的 Snapshot 快照技术 (1) B C Active File System File: NETAPP.DAT Disk blocks
NetApp 的 Snapshot 快照技术 (2) B C Active File System File: NETAPP.DAT Disk blocks Snapshot.0 File: NETAPP.DAT Snapshot 仅仅记录这三个数据块的指针, 没有数据拷贝
NetApp 的 Snapshot 快照技术 (3) File: NETAPP.DAT Active File System File: NETAPP.DAT C’ WAFL把修改后的数据块写到新位置 (C’) 现在数据块 (C) 既没有被更新,也没有被释放 A B C Disk blocks 顾客修改数据块 C 新数据
NetApp 的 Snapshot 快照技术 (4) File: NETAPP.DAT Active File System File: NETAPP.DAT A B C C’ Disk blocks 当前文件系统 NETAPP.DAT 现在由数据块 A, B 和 C’组成. NETAPP.DAT 的Snapshot.0由数据块 A, B 和 C 组成. 可以同时保留多个文件系统版本, 用于系统快速恢复
Write Anywhere File Layout 不同“快照”方式的比较 其它File Systems (例如, NTFS, UFS) Write Anywhere File Layout 存在 Snapshot 把模块“C”改为“Z” 把模块“C” 改为“Z” 当前文件系统 Snapshot 当前文件系统 Snapshot 当前文件系统 Snapshot A B C D A B Z D C A B C D Z 每个 write I/O 变为: Read old value Write old value Write new value 300% I/O penalty 一个 write I/O 保持为一个 I/O
存储系统中的缓存作用 磁盘写操作涉及磁头臂的机械运动,可以用带电池的缓存来减短应用的中断时间 缓存可以把单个写操作,积累成批量写操作,从而提高磁盘阵列的写效率 写缓存可以放在文件系统级或卷管理级
基于文件系统的缓存 NVRAM: 保证快速写操作 保证所写数据与磁盘的一致性, 缩短中断时间 进程中断时间最短, 客户响应时间加快, 可预见
基于文件系统和基于卷的缓存 UNIX NVRAM NetApp NVRAM NFS NFS File System File System Semantic Layer Semantic Layer NVRAM Write alloc Layer Write alloc Layer Disk Driver NVRAM Disk Driver
FC SAN解决数据共享的传统方法 NAS gateway方法 缺点: 两个管理界面 效率不匹配(NAS gateway可能是瓶颈) 资源不能完全共享 硬件资源浪费(Cache) 适用情况:绝大部分数据是结构化的,少量是非结构化的
群集文件系统与分布式文件系统 CFS:在群集范围内的所有存储设备上的每个存储块可以被并发读写。它不适用顾客,只适用服务器。 CFS通过分布锁管理器(DLM)来实现数据共享。如:ADIC的StorNext,IBM的 DFS:它协调所有的服务器实现数据共享。它对顾客和服务器采用2层结构的文件系统。在顾客层,它实现跨越所有机器的统一命名空间和单个文件系统的表达方式。它的服务器层承担所有的I/O操作,从数据存储的观点看,服务器层相当于存储层,有时就简称为存储结点。在DFS结构中,每个物理服务器管理自己的存储资源,不同的物理服务器彼此并不直接共享存储资源。如:NetApp的SpinFS(现在的Data ONTAP NG )
群集文件系统CFS示例 每个群集服务器看到的是相同的SAN卷 用控制器统一管理群集服务器对SAN卷中文件的共享 FC交换机 Metadata控制器 群集服务器 客户端 每个群集服务器看到的是相同的SAN卷 用控制器统一管理群集服务器对SAN卷中文件的共享 可以支持从主机到存储的多路径合并 可以支持异构平台的互操作
DFS示例 Linux 计算网格 GigE 顾客网络 GigE 群集网络 FC失效恢复路径 FC通路 InfiniBand 系统失效恢复连接 10/100/1000 管理网络 GigE 群集网络 (可以构架为冗余) GX Cluster FC通路 FC失效恢复路径 GX 1 GX 2 GX 3 GX 4 InfiniBand 系统失效恢复连接 FC 或 ATA 磁盘架 灵活卷 汇聚
关键技术—整体命名空间(global namespace) 简单 所有参加计算的节点,可以看到所有数据 简化mount点的管理 在顾客端无需改动 透明 扩展 灵活卷的移动 失效接管 扩展性 将命名空间用于PB数量级数据 可管理性
整体命名空间举例 顾客可以mount到任何服务器上,存取整个命名空间 举例: 从位于GX1的服务器端口,存取位于GX3上的灵活卷SW Eng Proj_ABC Proj_XYZ HW SW Docs Sim Syn Linux Compute Grid 顾客可以mount到任何服务器上,存取整个命名空间 举例: 从位于GX1的服务器端口,存取位于GX3上的灵活卷SW GigE 顾客网络 对位于SW目录上 文件的NFS请求 GigE 群集网络 GX Cluster GX 1 GX 2 GX 3 GX 4 Fibre Channel 存储的 灵活卷 Eng Proj_XYZ SW Sim Proj_ABC HW Docs Syn
扩展性 – 灵活卷的条带化 提供高性能选择 好处 创建跨多个控制器节点的灵活卷 将灵活卷的通量扩展到多GB/秒 将灵活卷的大小扩展到数百TB 保持管理的简单性 用相同的存储系统于多个应用需求 Projects X B C A1 A2 A3 B1 B2 C1 C2 C3 Linux 计算 网格 GX Cluster 整体命名空间 FV3 FV4 FV7 FV8 FV11 FV12 FV1 FV2 FV5 FV6 FV9 FV10 条带化的卷X
扩展性 – 透明扩展 透明扩展 好处 透明数据移动 用于存储扩展 迅速无缝地启用新存储和/或应用 无需宕机时间 对计算节点透明,不改变命名空间 Projects B A B C A1 A2 A3 B1 B2 C1 C2 C3 A B B2 B C2 A2 A1 C C3 A3 C1 B1 把数据移到新添加的存储上
扩展性 – 负载均衡镜像 与整体命名空间透明结合 不需要修改顾客 举例: 直接mount到有镜像数据的节点, 可以从本地镜像读取数据 需要远程数据的DFS请求, 将被轮流分布到可用的镜像上 举例: 灵活卷A3读取频率很高 GX3正在变饱和 镜像创建在GX2,3,4 Mount到GX2,3,4的顾客可以直接读取 Mount到GX1的顾客将通过DFS从其它三个节点读取A3数据 整体命名空间 Proj A B C D A1 A2 A3 B1 B2 B3 C1 C2 C3 D1 D2 D3 GigE群集网络 GX Cluster GX 1 GX 2 GX 3 GX 4 Fibre Channel A3 A3 存储的 灵活卷 Proj A1 B2 A3 C3 B1 D1 C2 D3 C1 A2 D2 B3 镜像的灵活卷
灵活数据管理 – 数据移动 透明数据移动 好处 举例: 适宜优化负载 优化性能 充分利用磁盘空间 不影响应用运行 对顾客透明, 不改变命名空间 举例: 优化项目A的响应时间 Projects A B C A1 A2 A3 B1 B2 C1 C2 C3 A B1 B A1 C2 C3 A3 C1 B2 C A2 项目A 得到专用资源
灵活数据管理 – 分层存储 应用情况: 分层存储 应用情况: 顺序I/O应用 根据磁盘的价格/性能比匹配磁盘 在同一命名空间内管理主存储与二级存储 分层存储应用: 归档 盘到盘备份 引用数据 应用情况: 顺序I/O应用 用ATA的价格,取得FC的性能 对不同的磁盘或应用要求,提供不同的RAID保护(如提供2块磁盘失效的数据保护) 灵活卷移动时命名空间保持 Projects A B C A1 A2 A3 B1 B2 C1 C2 C3 A B C2 A1 C3 A3 B2 A2 B1 C1 C 主存储 (所有工作负载得到最高性能) 二级存储 (较低的 $/GB)
卷管理 传统卷,FlexVol
今天的卷 卷是存储的基本建设模块 数据管理的操作和计划均围绕卷进行 问题在于: 卷与底层的磁盘是密不可分的 快照 备份和恢复 空间的分配和供应 问题在于: 卷与底层的磁盘是密不可分的 缺乏灵活性 难于按应用特性分卷 空间利用率低 性能难于优化
介绍 FlexVol™ Aggregate包含物理存储 FlexVol: 不再直接与物理存储挂钩 FlexVols FlexVol: 不再直接与物理存储挂钩 FlexVol: 每个aggregate可有多个 存储空间能够很容易被再分配 Aggregate Disks 数据存储和管理的主要单位仍旧是WAFL® 卷
Aggregates 与 FlexVols: 工作原理 创建 RAID 组 vol1 Aggregate RG1 RG2 RG3 vol2 创建 aggregate vol3 创建并使用每个FlexVol: 无需给特定的卷预分数据块 WAFL® 在往卷上写数据时才分配空间 RG1 RG2 RG3
Aggregates 与 FlexVols FlexVols: the logical storage container 能够不间断地扩大或缩小 可以小到几个MBs,也可大到整个 aggregate 保留所有其它卷级特性 Aggregate: 一个物理存储池
FlexVol™: 改善空间利用率 通常的卷: 自由空间按卷成为碎片 自由空间对其它卷无效 FlexVol: 无需预分自由空间 自由空间可以被别的卷或新卷使用 Vol 1 Vol 2 Vol 3 Vol 4 Free
FlexVol™: 提高 I/O 性能 通常的卷: 卷的性能受它所拥有的磁盘数目的限制 其它卷上的盘无助于事 FlexVol: 所有磁盘被整个 aggregate 共享,性能对所有卷都有效
NetApp的Grid模式 Linux Server Clusters Gigabit Ethernet Switches Network Appliance SpinServer devices Gigabit Ethernet Switches Network Appliance file servers
谢谢!