490 likes | 610 Views
存储系统环境. 高薇 国家天文台 (科技处)信息与计算中心. 存储系统环境. 存储设备是数据中心的核心部件之一,作为一种独特的资源,需要考虑如何对它进行专门的实现和管理。数据流从应用程序到存储设备,中间所经过的各个部件统称为“存储系统环境。 主要有三个组成部分: 主机、连接、存储设备。. 存储系统环境. 存储系统环境组成 磁盘驱动部件 磁盘驱动器的性能 主机的逻辑部件 应用程序的需求和磁盘的性能. 主机. 用户通过应用程序来存储、检索数据。运行这些应用程序的计算机被称作“主机”。主机的类型很广泛,可以是简单的笔记本电脑,也可以是复杂的服务器集群。
E N D
存储系统环境 高薇 国家天文台 (科技处)信息与计算中心
存储系统环境 • 存储设备是数据中心的核心部件之一,作为一种独特的资源,需要考虑如何对它进行专门的实现和管理。数据流从应用程序到存储设备,中间所经过的各个部件统称为“存储系统环境。 • 主要有三个组成部分: • 主机、连接、存储设备。
存储系统环境 • 存储系统环境组成 • 磁盘驱动部件 • 磁盘驱动器的性能 • 主机的逻辑部件 • 应用程序的需求和磁盘的性能
主机 • 用户通过应用程序来存储、检索数据。运行这些应用程序的计算机被称作“主机”。主机的类型很广泛,可以是简单的笔记本电脑,也可以是复杂的服务器集群。 • 一台主机包括一组使用逻辑部件(软件、协议)进行相互通信的物理部件(硬件设备)。 • 存储系统环境的数据访问及其总体性能取决于主机的物理和逻辑部件。
主机 • 物理部件 • 中央处理器单元(CPU); • 存储设备,如内存和磁盘; • 输入输出(I/O)设备。 物理部件之间的通信是通过总线(bus)通道进行。总线将CPU和其他部件,如存储设备和I/O设备连接起来。
主机 • CPU—包含4个主要部件 • 算术逻辑单元(Arithmetic Logic Unit,ALU) CPU的基本组成部分。用来执行算术和逻辑运算,如加、减、布尔运算。 • 控制单元(Control Unit): 一块数字电路,用来控制CPU的操作,并对CPU的功能进行协调。 • 寄存器(Register):一组高速存储单元,存储CPU执行指令所需要的中间数据。因为它们离ALU很近,所以能提供快速访问。典型的CPU都有少量的寄存器。 • 一级高速缓存(L1 Cache): 在现代CPU中,L1 Cache 用来存放最有可能被CPU访问的数据和程序指令。比起寄存器它的速度要慢一些,但有更多的存储空间。
主机 • 存储设备 内存和外存用来暂时性或永久性地存储数据。内存模块是由半导体芯片制成的,而外存设备则是由磁性或光学介质制成。从内存模块存取数据要比从外存的速度更快。
主机 • 主机上有两种类型的内存 • 随机存取存储器(RAM ):允许从内存的任何位置直接访问数据,可以往内存写数据也可以从它里面读数据。RAM具有易失性,需要持久供电来维持内存单元的内容。当系统电源掉电时,数据即被擦除。 • 只读存储器(ROM):具有非易失性,但只允许读数据操作。ROM用于保存运行内部例程所需的数据,如系统启动程序。
主机 • 外存设备比半导体内存的造价要便宜很多 • 硬盘(磁性介质); • CD/DVD-ROM(光学介质); • 软盘 • 磁带
主机 • I/O设备 I/O设备使得主机可以发送或接收数据。 通讯类型: • 用户-主机通信(User to Host): 由一些基础I/O设备负责,如键盘、鼠标、显示器等。 • 主机-主机通信(Host to Host):由一些诸如网络接口卡(NIC)或调制解调器之类的设备负责。 • 主机-外存通信(Host to Storage Device):由主机总线适配器(Host Bus Adaptor,HBA)来负责。HBA是一块专用集成电路板,承担着主机和外存之间I/O接口处理的功能,将CPU从多余的I/O处理负担中解脱出来。HBA还提供了连接的插口,即端口(Port),用于连接主机和外存设备。一台主机可以有多个HBA。
连接 • 连接: 指各个主机间或主机同其他外设(如打印机、外存设备)之间的互连。 • 连接的物理部件 • 连接主机与外存之间的硬件 总线、端口、电缆。 • 连接的逻辑部件 • 指用于主机和外存之间通信的协议。
连接 • 总线(Bus) 是一组数据通路,方便了计算机各个部件之间的数据传输,比如将数据从CPU传输到内存。 • 端口(Port) 是专业插口,使得主机和外部设备之间可以建立连接。 • 电缆(Cable) 用于将内部或外部设备连接到主机上,由铜或光纤制成。
连接 • 总线(Bus) 物理部件通过总线在各个设备之间发送比特数据(控制、数据或地址),从而达到相互通信。这些比特数据(二进制位)将通过总线以下两种方式被传送。 • 串行:比特位在单个通路中按顺序进行传输,可以是单向的或双向的。 • 并行:比特位同时在多个通路中进行传输。并行也可以是双向的。 • 总线分类: • 系统总线:将数据线从处理器传送到内存的总线。 • 本地或I/O总线:直接和处理器相连的高速通路,并在外围设备之间传送数据,比如外存设备和处理器之间。
存储设备 • 存储设备是存储系统环境中最重要的组成部分。 • 磁性介质:磁盘、磁带。 • 光学介质:光盘。 • 固态介质:闪存盘。 磁盘驱动器(Disk Drive) 是当今计算机存储和访问数据使用最多的存储介质,可以很好地支持性能密集型的在线应用程序。另外,磁盘有很大的容量,由多个磁盘组成的磁盘阵列能够提供更大的容量和更高的性能。
磁盘驱动部件 • 磁盘驱动器通过在磁性盘片上快速地移动读写臂来读写数据。数据通过读写头从磁性盘片传输到计算机。读写头、控制器以及多个磁性盘片组合到一起,称为磁盘驱动器(HDD)。 磁盘的核心部件:盘片、主轴、读写头、驱动臂装置以及控制器。(如图)
磁盘驱动部件 • 盘片:硬盘包含一个或多个圆形金属盘,称盘片。数据以二进制代码(0 1)的形式记录在这些盘片上。将一组可旋转的盘片封装在一个盒子里,就形成磁头磁盘组合件(HDA)。 • 一个盘片是双面镀上磁性物理材料的刚性、圆形金属盘。在盘片上的数据是通过在磁盘表面分布的不同磁性区域来编码的。数据在盘的上下两面都可以进行读写。盘片的个数以及每个盘片的存储容量决定了磁盘的总容量。
磁盘驱动部件 • 主轴:如上图,一根主轴固定了所有的盘片,并和一个马达相连。主轴的马达是以恒速旋转的。盘片以几千r/min的速度旋转。目前有7200rpm,10000rpm,15000rpm几种。盘片的直径都是3.5英寸。
磁盘驱动部件 • 读写头:磁盘的每个盘片上都有2个读写头,上下两面各一个。 • 磁盘上的逻辑电路保证了读写头在接触盘面之前先移动到着陆区。如果激励器出现了故障,读写头意外地接触到了着陆区之外的盘片表面,就会导致磁头瘫痪。数据会丢失。
磁盘驱动部件 • 驱动臂装置 读写头是安装在驱动臂装置上,将读写头移动到盘片上需要读写数据的位置。 • 控制器 控制器是一块印刷电路板,安装在磁盘底部。它包含一个微处理器、内存、电路以及固件。固件控制着主轴马达的电源和马达的转速,还负责管理磁盘和主机之间的通信。此外,它还控制激励器移动驱动臂,并切换不同读写头来控制读写操作,还能对数据访问进行优化处理。
磁盘驱动部件 • 物理磁盘的结构 • 磁盘的数据是记录在磁道(Track)上的。是盘面上以主轴为圆心的一组同心环。依次从外向内编号,最外磁道号为 0。 • 每个磁道都被划分为更小的单元,称作扇区(Sector)。一个扇区是存储系统中可单独被寻址的最小单位。磁道和扇区的结构已经被生产厂商格式化到盘面上。一个盘面可以容纳几千个磁道,这取决于盘片的物理面积以及记录密度。
磁盘驱动部件 • 通常一个扇区的容量是512字节,除了存储数据,还存储扇区号、磁头号或盘面号、磁道号等。所以,未经格式化的磁盘和已被格式化磁盘容量会存在一个差值。如, 500GBde磁盘只能存储465.7GB的用户数据,余下的34.3GB空间用来存储上面的那些元数据。 • 所有盘面上相同半径位置处的磁道所组成的存储区域为一个柱面(Cylinder)。磁头的位置是由柱面号来表示的,而不是磁道号。
磁盘驱动部件 • 分区位记录 由于盘片是由具有相同圆心的磁道组成的,外面的磁道的周长肯定比里面的长,所以外面的磁道必然能存储更多的数据。过去的磁盘中,外磁道与内磁道所包含的扇区个数相同,所以外磁道的数据密度相对较低,盘面的空间利用率也较低。
分区位记录 高效地利用磁盘空间。根据磁道与磁盘中心的距离将它们划分成若干个区域。这些区域从最外面起进行编号,最外面的区号是0。每个指定的区域内所有磁道上的扇区个数都是相同的。
磁盘驱动部件 • 逻辑块寻址 早期磁盘利用物理地址,柱面、磁头、扇区的编号CHS号,在磁盘上进行定位。逻辑块寻址(LBA),大大简化了寻址过程。磁盘控制器将LBA地址转换为CHS地址,主机操作系统只需知道磁盘有多少个物理块就行了。逻辑块与物理块(扇区)之间的映射是1:1。
磁盘驱动部件 • 逻辑块寻址 磁盘的每个磁道上有8个扇区、8个磁头、4个柱面(每个盘面上有4个磁道)。也就是说一共有8x8x4=256个物理块,物理块的编号是从0到255。
磁盘驱动器的性能 • 磁盘服务时间 指磁盘完成一个I/O请求所花费的时间。影响因素有三个:寻道时间、旋转延迟和数据传输速率。 • 寻道时间:指读写头在盘面上移动(沿盘面半径方向)进行定位的时间,也就是移动臂将读写头移动到正确的磁道上所需的时间。寻道时间越短,I/O操作越快。在随机的磁道上读数据与相邻磁道上读数据相比,寻道时间对前者影响更为关键。
磁盘驱动器的性能 • 旋转延迟:为了存取数据,激励器和驱动臂需要将盘面上方的读写头移到特定的磁道。同时盘片旋转,将请求的数据(扇区)移到读写头下面。盘片旋转以定位读写头下方的数据(扇区)所用的时间,称为旋转延迟。平均旋转延迟是主轴旋转一圈所需时间的二分之一。与寻道时间类似,读写随机选择的扇区与读写邻扇区相比,选择延迟对前者的影响更大。
磁盘驱动器的性能 • 数据传输速率:指每个单位时间内磁盘能够传输到HBA的平均数据量。 • 读写过程:读操作,数据首先从盘面移动到读写头,再到磁盘内部的缓冲区,最后才通过接口传输到主机HBA。写操作,数据通过磁盘接口从HBA传输到磁盘内部的缓冲区,再到读写头,最终读写头写到盘面上。
主机的逻辑部件 • 主机的逻辑部件由应用软件和协议组成: • 操作系统(OS); • 设备驱动程序(Device Driver); • 卷管理器(Volume Manager); • 文件系统(File System); • 应用(Application)。
主机的逻辑部件 • 操作系统(OS): 管理着计算机环境中的各个方面,它工作于应用程序和计算机物理部件之间。它支持数据访问、监视和响应用户动作。组织和控制着物理资源并负责物理资源的分配。同时,它还提供了对所管理资源访问与使用的基本安全保障。在管理一些其他底层资源,如文件系统、卷首管理器和设备驱动的同时,操作系统也担当基本存储管理的任务。
主机的逻辑部件 • 设备驱动(DeviceDriver: 是一种特殊的软件,它允许操作系统与特殊的设备,如打印机、鼠标或硬盘交互。设备驱动让操作系统识别出设备,并且能够使用标准接口(如应用程序编程接口API,ApplicationProgrammingInterface)来访问和控制设备。设备驱动是硬件相关的,且与操作系统紧密关联。
主机的逻辑部件 • 卷管理器 早期,硬盘驱动器(HDD)呈现给操作系统的是一组连续的物理块。整个硬盘驱动器都分配给文件系统或是其他数据体,由操作系统或应用程序使用。这样做的缺点是缺乏灵活性:当 一个硬盘驱动器的空间使用完时,想要扩展文件系统的大小就很难。而当硬盘驱动器存储容量增加时,把整个硬盘驱动器分配给文什系统通常会导致存储空间不能充分利用。 磁盘分区(DiskPartitioning)的引入就是为了改善硬盘驱动器的灵活性和使用率。在分区时,硬盘驱动器被划分为几个逻辑卷(LV)。例如, 一个大的物理磁盘,可以根据文件系统和应用程序的数据管理要求,划分为若个小的逻辑卷。当硬盘在主机上进行初始分区时,是将一组连续的柱面分配给一个分区。主机的文件系统在访问分区时,完全不需要知道磁盘的物理结构和分区信息。
主机的逻辑部件 • 串联(Concatenation)是一个把若干小的物理磁盘组合起来的过程,并呈现给主机一个更大的、完整的逻辑盘(如图上所示)。 • 逻辑卷管理器(LogicalVolumeManager,LVM)的发展使得文件系统容量的动态扩展以及高效的存储管理成为可能。LVM是一个运行在物理机器上管理逻辑和物理存储设备的软件。LVM也是一个介于文件系统和物理磁盘之间可选的中间层次。它可以把几个小的磁盘组合成一个大的虚拟磁盘,或是反过来把一个大容量物理磁盘划分为若于小的虚拟磁盘,提供给应用程序使用。LVM提供了优化的存储访问,简化了存储资源的管理。它隐藏了物理磁盘细节和数据在磁盘上的分布。同时,它也允许管理员改变存储的分配而不用改变硬件,就算应用程序还在运行着也没有关系。
主机的逻辑部件 LVM的基本部件是物理卷(Physical Volume)、卷组(Volume Group)和逻辑卷(Logical Volume)。在LVM术语中,每一个连接到主机系统的物理磁盘都是一个物理卷(PV)。 LVM把由物理卷提供的物理存储空间转换为逻辑存储空间,以便给操作系统和应用程序使用。一个卷组的创建是把一个或多个物理卷变为一组。当一个物理卷被初始化使用时,LVM都会为其分配一个唯一的物理卷标识(PVID)。物理卷可以动态地往卷组中添加或移除。在不同的卷组之间,物理卷是不能共享的,每个物理卷的全部都变成了卷组的一部分。在卷组创建时,每一个物理卷都被划分为若于个相同大小的数据块,这些数据块称为物理区域(PhysicalExtent)。
主机的逻辑部件 逻辑卷是在给定的卷组中创建的。 一个逻辑卷可以被认为是一个虚拟磁盘分区,而卷组则可以被认为是一个磁盘。一个卷组可以划分为许多逻辑卷。逻辑卷的大小取决于:物理区域(PhysicalExtent)的数目。 对操作系统来说,逻辑卷就像是一个物理设备。一个逻辑卷可以由不连续的物理区组成,并可以跨越多个物理卷。 一个文件系统可以创建在·一个逻辑卷之上, 且逻辑卷可以通过配置来为应用程序提供优化的性能,也可以被镜像来提供更好的数据可用性。
主机的逻辑部件 • 文件系统 一个文件就是一个有关联关系的记录或数据的集合,它们作为,一个整体存储在一起并被命名。一个文件系统(File System)就是大量文件的分层组织结构。 文件系统使得对存放在磁盘、磁盘分区或逻辑卷内的数据文件的访问变得更加容易。—个文件系统需要基于主机的逻辑结构和软件例程来控制对文件的存取。对磁盘上文件的访问需要由文件拥有者授权才能讲行,这通常也是由文件系统来控制的。
主机的逻辑部件 文件系统通过使用目录(Directory)来把数据组织成分层结构。目录就是保存指向文件的指针的地方。所有的文件系统都维护着一个到目录、子目录和文件的指针映射,这内容也是文件系统的一部分。常见的文件系统有以下几种。 • FAT32(FileAllocationTable,文件分配表);适用于微软Windows; • NT文件系统(NTFS):适用于微软Windows; • UNIX文件系统(UFS):适用于UNIX; • 扩展文件系统(EXT2/3).适用于UNIX。
主机的逻辑部件 • 利用LVM将用户文件映射到磁盘存储子系统的过程: • 用户和应用程序产生和管理文件; • 将这些文件存储在文件系统上; • 文件系统把它们映射到数据单元或是文件系统块上; • 文件系统块又被映射逻辑区域(LogicalExtent)上; • 通过操作系统或是LVM再把逻辑区域映射到磁盘的物理区域(Physical Extent)上; • 这些物理区域最终被映射到物理存储子系统上。 如果没有LVM,那么就不会有逻辑区域(LogicalExtent)。没有LVM,文件系统块将被直接映射到磁盘扇区。 文件系统树(FileSystemTree)以根目录(RootDirectory)开始。根目录又有大量子目录。文件系统只有挂载之后才能被使用。
主机的逻辑部件 • 应用 一个应用(Application)就是一个提供计算操作逻辑:的计算机程序,它提供了一个介于用户和主机以及多个主机之间的界面。传统的使用数据库的商业应用都采用三层架构——前端(Front-end Tier)是应用用户界面:计算逻辑,或应用本身,构成了中间层(MiddleTier):而组织数据的底层数据库则是后端(Back-endTier)。应用程序可以直接发送一个请求到底层操作系统,由操作系统来完成在存储设备上读写操作。应用程序也可以在数据库之上,而数据库同样也要利用操作系统的服务来实现对存储设备的读写操作。这些读写操作最终完成了前端和后端之间的事务。
主机的逻辑部件 数据访问可以分为块级别(Block-level)和文件级别(File-level)两种方式。这取决于程序是使用逻辑块地址,还是使用文件名和文件记录标识符来读写磁盘。 • 块级别访问 块级别访问(Block-level Access)是磁盘访问的基本机制。在这种类型访问中,数据是通过指定逻辑块地址来从磁盘存储和查询数据的。块地址是基于磁盘的几何配置来获得的,而块大小则确定了应用程序存储和访问数据的基本单位。 数据库,如Oracle和SQLServer,在进行I/0操作时,就是根据逻辑块地址来定位数据的位置和定义数据访问块的大小。
主机的逻辑部件 • 文件级别访问 文件级别访问(File-levelAccess)是块级别访问的—个抽象。文件级别访问是通过指定文件名和路径来防访问数据的。它通过底层的块级别访问来存储,向上则为应用程序和DBMS屏蔽了逻辑块编址的复杂性。 • 对象级别访问 是数据访问向智能化发展迈出的一步。对象是访问和存储数据的基本单位。数据通过分类的方式来组织和管理,并通过唯一的对象标识符来加以区分。应用程序就是通过使用这些标识符来存储和检索数据的。
应用程序的需求和磁盘的性能 应用程序的存储需求分析通常都是从确定存储容量开始的。这可以根据文件系统的大小和数量,以及应用程序将要使用的数据库部件来评估确定。应用程序的I/O大小及其产生的I/O数量是影响磁盘性能和响应时间的两个重要指标。
应用程序的需求和磁盘的性能 • 应用程序的存储设计和布局需要从以下两个方面着手: • 分析高负载时产生的I/O数量; • 记录下应用程序I/O大小或是块大小。 块大小取决于应用程序所依赖的文件系统和数据库。数据库环境中的块大小通常是由底层数据库引擎及其环境变量集所控制的。应用程序I/O服务的速率以每秒多少次I/O操作来度量(IOPS)。 在许多应用环境中,往往需要更多的磁盘来满足IOPS需求,容量需求反而在其次。对那些响应时间敏感的应用,磁盘需求数还必须以单个磁盘低于70%使用率时的IOPS来计算。这样才能保证有更好的响应时间。
小 结 • 本章详细描述了存储系统环境:主机、连接和存储设备。从应用程序到存储设备的数据流需要经过这些实体,它们的物理和逻辑部件都影响着存储系统环境的整体性能。 • 存储设备是存储系统环境中的重要元素。硬盘驱动器是最流行的存储设备,它使用磁介质来访问和存储数据,可以很好第满足性能敏感的应用程序的需要。从逻辑上看,硬盘驱动器性能的基本准则。磁盘的总体性能取决于响应时间,这包括寻道时间、旋转延迟和磁盘服务时间。