1.3.1 主机系统
用户通过应用程序来存储、检索数据,而运行这些应用程序的计算机被称作“主机”。主机的类型很广泛,可以是简单的笔记本电脑,也可以是复杂的服务器集群。一台主机包括一组使用逻辑部件(软件、协议)进行相互通信的物理部件(硬件设备)。存储系统环境的数据访问及其总体性能取决于主机的物理部件和逻辑部件。
主机物理部件通常包含三个核心:中央处理单元(central processing unit, CPU),内存及磁盘存储设备、输入和输出的I/O设备。
主机的逻辑部件由应用软件和协议组成,和物理部件一样,它们协同实现了与用户的数据交互。主机的逻辑部件包括:操作系统(operating system, OS)、设备驱动程序(device driver)、文件系统(file system)、卷管理器(volume manager)和应用程序(application program)。
1.操作系统
操作系统控制计算机环境的所有方面的操作和用户接口。其主要功能包括:管理所有系统硬件部件的内部操作和用户接口。操作系统管理着计算机环境中的各个方面,它工作于应用程序和计算机物理部件之间。操作系统提供给应用程序的功能之一就是支持数据访问。当然,操作系统也监视和响应用户动作。它组织和控制着物理资源并负责物理资源的分配。同时,它还提供了对所管理资源访问与使用的基本安全保障。在管理一些其他底层资源,如文件系统、卷管理器和设备驱动的同时,操作系统也担当基本存储管理的任务。其主要功能包括:控制应用程序与存储系统间的交互;检测并响应用户的动作和系统状态;将硬件部件连接到应用程序层和用户;管理系统的活动,例如存储和通信动作。
2.设备驱动程序
设备驱动程序允许操作系统侦测并使用标准接口存取和控制特定设备,如打印机、扬声器、鼠标、键盘、视频设备和存储设备等。设备驱动提供适当的协议使主机能够访问设备。
3.文件系统
文件系统提供数据的逻辑结构以及存取数据的方法。一个文件就是一个有关联关系的记录或数据的集合,它们作为一个整体存储在一起并被命名。一个文件系统就是大量文件的分层组织结构。文件系统使得对存放在磁盘、磁盘分区(disk partitioning)或逻辑卷(logical volume, LV)内的数据文件的访问变得更加容易。一个文件系统需要基于主机的逻辑结构和软件例程来控制对文件的存取。对磁盘上文件的访问需要由文件拥有者授权才能进行,这通常也是由文件系统来控制的。
4.卷管理器
早期,硬盘驱动器(hard disk drive, HDD)呈现给操作系统的是一组连续的物理块。整个硬盘驱动器都分配给文件系统或是其他数据体,由操作系统或应用程序使用。这样做的缺点是缺乏灵活性:当一个硬盘驱动器的空间使用完时,想要扩展文件系统的大小就很难。而当硬盘驱动器存储容量增加时,把整个硬盘驱动器分配给文件系统通常会导致存储空间不能被充分利用。磁盘分区的引入就是为了改善硬盘驱动器的灵活性和使用率。在分区时,硬盘驱动器被划分为几个逻辑卷。
逻辑卷管理器(logical volume manager, LVM)的发展使得文件系统容量的动态扩展以及高效的存储管理成为可能。LVM是一个运行在物理机器上管理逻辑和物理存储设备的软件。LVM也是一个介于文件系统和物理磁盘之间可选的中间层次。它可以把几个小的磁盘组合成一个大的虚拟磁盘,或是反过来把一个大容量物理磁盘划分为若干个小的虚拟磁盘,提供给应用程序使用。LVM提供了优化的存储访问,简化了存储资源的管理。它隐藏了物理磁盘细节和数据在磁盘上的分布。同时,它也允许管理员改变存储的分配而不用改变硬件,就算应用程序还在运行着也没有关系。
对操作系统来说,逻辑卷就像是一个物理设备。一个逻辑卷可以由不连续的物理分区组成,并可以跨越多个物理卷。一个文件系统可以创建在一个逻辑卷之上,而且逻辑卷可以通过配置来为应用程序提供优化的性能,也可以为镜像提供更好的数据可用性。
5.应用程序
应用程序提供在用户与主机间或者主机与其他系统间的交互点。多数应用都有存储的需求。这些存储短期或者长期依赖于应用程序。一个应用程序就是一个提供计算操作逻辑的计算机程序,它提供了一个介于用户和主机以及多个主机之间的界面。传统的使用数据库的商业应用都采用三层架构:前端是应用用户界面;计算逻辑,或应用本身,构成了中间层;而组织数据的底层数据库,则是后端。应用程序可以直接发送一个请求到底层操作系统,由操作系统来完成在存储设备上的读写操作。应用程序也可以在数据库之上,而数据库同样也要利用操作系统的服务来实现对存储设备的读写操作。这些读写操作最终完成了前端和后端之间的事务。
数据访问可以分为块级别和文件级别两种方式。这取决于应用程序是使用逻辑块地址,还是使用文件名和文件记录标识符来读写磁盘。
块级别访问是磁盘访问的基本机制。在这种类型的访问中,数据是通过指定逻辑块地址来从磁盘存储和查询数据的。块地址是基于磁盘的几何结构配置来获得的,而块大小则确定了应用程序存储和访问数据的基本单位。数据库,如Oracle和SQL Server,在进行I/O操作时,就是根据逻辑块地址来定位数据的位置和定义数据访问块的大小。
文件级别访问是块级别访问的一个抽象。文件级别访问是通过指定文件名和路径来访问数据的。它通过底层的块级别访问来存储,向上则为应用程序和数据库管理系统(database management system, DBMS)屏蔽了逻辑块编址的复杂性。
对象级别访问是数据访问向智能化发展迈出的一步。这里,对象是访问和存储数据的基本单位。数据通过分类的方式来组织和管理,并通过唯一的对象标识符来加以区分。应用程序就是通过使用这些标识符来存储和检索数据的。