1.简介
分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。另外,对等特性允许一些系统扮演客户机和服务器的双重角色。例如,用户可以“发表”一个允许其他客户机访问的目录,一旦被访问,这个目录对客户机来说就像使用本地驱动器一样。
当下我们处在一个互联网飞速发展的信息 社会 ,在海量并发连接的驱动下每天所产生的数据量必然以几何方式增长,随着信息连接方式日益多样化,数据存储的结构也随着发生了变化。在这样的压力下使得人们不得不重新审视大量数据的存储所带来的挑战,例如:数据采集、数据存储、数据搜索、数据共享、数据传输、数据分析、数据可视化等一系列问题。
传统存储在面对海量数据存储表现出的力不从心已经是不争的事实,例如:纵向扩展受阵列空间限制、横向扩展受交换设备限制、节点受文件系统限制。
然而分布式存储的出现在一定程度上有效的缓解了这一问题,之所以称之为缓解是因为分布式存储在面对海量数据存储时也并非十全十美毫无压力,依然存在的难点与挑战例如:节点间通信、数据存储、数据空间平衡、容错、文件系统支持等一系列问题仍处在不断摸索和完善中。
2.分布式文件系统的一些解决方案
Google Filesystem适合存储海量大个文件,元数据存储与内存中
HDFS(Hadoop Filesystem)GFS的山寨版,适合存储大量大个文件
TFS(Taobao Filesystem)淘宝的文件系统,在名称节点上将元数据存储与关系数据库中,文件数量不在受限于名称节点的内容空间,可以存储海量小文件LustreOracle开发的企业级分布式系统,较重量级MooseFS基于FUSE的格式,可以进行挂载使用MogileFS
擅长存储海量的小数据,元数据存储与关系型数据库中
1.简介
MogileFS是一个开源的分布式文件系统,用于组建分布式文件集群,由LiveJournal旗下DangaInteractive公司开发,Danga团队开发了包括 Memcached、MogileFS、Perlbal等不错的开源项目:(注:Perlbal是一个强大的Perl写的反向代理服务器)。MogileFS是一个开源的分布式文件系统。
目前使用 MogileFS 的公司非常多,比如国外的一些公司,日本前几名的公司基本都在使用这个.
国内所知道的使用 MogileFS 的公司有图片托管网站 yupoo又拍,digg, 土豆, 豆瓣,1 号店, 大众点评,搜狗,安居客等等网站.基本很多网站容量,图片都超过 30T 以上。
2.MogileFS特性
1) 应用层提供服务,不需要使用核心组件
2)无单点失败,主要有三个组件组成,分为tracker(跟踪节点)、mogstore(存储节点)、database(数据库节点)
3)自动复制文件,复制文件的最小单位不是文件,而是class
4)传输中立,无特殊协议,可以通过NFS或HTTP实现通信
5)简单的命名空间:没有目录,直接存在与存储空间上,通过域来实现
6)不用共享任何数据
3.MogileFS的组成
1)Tracker--跟踪器,调度器
MogileFS的核心,是一个调度器,mogilefsd进程就是trackers进程程序,trackers的主要职责有:删除数据、复制数据、监控、查询等等.这个是基于事件的( event-based ) 父进程/消息总线来管理所有来之于客户端应用的交互(requesting operations to be performed), 包括将请求负载平衡到多个"query workers"中,然后让 mogilefs的子进程去处理.
mogadm,mogtool的所有操作都要跟trackers打交道,Client的一些操作也需要定义好trackers,因此最好同时运行多个trackers来做负载均衡.trackers也可以只运行在一台机器上,使用负载均衡时可以使用搞一些简单的负载均衡解决方案,如haproxy,lvs,nginx等,
tarcker的配置文件为/etc/mogilefs/mogilefsd.conf,监听在TCP的7001端口
2)Database--数据库部分
主要用来存储mogilefs的元数据,所有的元数据都存储在数据库中,因此,这个数据相当重要,如果数据库挂掉,所有的数据都不能用于访问,因此,建议应该对数据库做高可用
3)mogstored--存储节点
数据存储的位置,通常是一个HTTP(webDAV)服务器,用来做数据的创建、删除、获取,任何 WebDAV 服务器都可以, 不过推荐使用 mogstored . mogilefsd可以配置到两个机器上使用不同端口… mogstored 来进行所有的 DAV 操作和流量,IO监测, 并且你自己选择的HTTP服务器(默认为 perlbal)用来做 GET 操作给客户端提供文件.
典型的应用是一个挂载点有一个大容量的SATA磁盘. 只要配置完配置文件后mogstored程序的启动将会使本机成为一个存储节点.当然还需要mogadm这个工具增加这台机器到Cluster中.
配置文件为/etc/mogilefs/mogstored.conf,监听在TCP的7500端口
4.基本工作流程
应用程序请求打开一个文件 (通过RPC 通知到 tracker, 找到一个可用的机器). 做一个 “create_open” 请求.
tracker 做一些负载均衡(load balancing)处理,决定应该去哪儿,然后给应用程序一些可能用的位置。
应用程序写到其中的一个位置去 (如果写失败,他会重新尝试并写到另外一个位置去).
应用程序 (client) 通过”create_close” 告诉tracker文件写到哪里去了.
tracker 将该名称和域命的名空间关联 (通过数据库来做的)
tracker, 在后台, 开始复制文件,知道他满足该文件类别设定的复制规则
然后,应用程序通过 “get_paths” 请求 domain+key (key == “filename”) 文件, tracker基于每一位置的I/O繁忙情况回复(在内部经过 database/memcache/etc 等的一些抉择处理), 该文件可用的完整 URLs地址列表.
应用程序然后按顺序尝试这些URL地址. (tracker’持续监测主机和设备的状态,因此不会返回死连接,默认情况下他对返回列表中的第一个元素做双重检查,除非你不要他这么做..)
1.拓扑图
说明:1.用户通过URL访问前端的nginx
2.nginx根据特定的挑选算法,挑选出后端一台tracker来响应nginx请求
3.tracker通过查找database数据库,获取到要访问的URL的值,并返回给nginx
4.nginx通过返回的值及某种挑选算法挑选一台mogstored发起请求
5.mogstored将结果返回给nginx
6.nginx构建响应报文返回给客户端
2.ip规划
角色运行软件ip地址反向代理nginx192.168.1.201存储节点与调度节点1
mogilefs192.168.1.202存储节点与调度节点2
mogilefs192.168.1.203数据库节点
MariaDB192.168.1.204
3.数据库的安装操作并为授权
关于数据库的编译安装,请参照本人相关博文http://wangfeng7399.blog.51cto.com/3518031/1393146,本处将不再累赘,本处使用的为yum源的安装方式安装mysql
4.安装mogilefs. 安装mogilefs,可以使用yum安装,也可以使用编译安装,本处通过yum安装
5.初始化数据库
可以看到在数据库中创建了一些表
6.修改配置文件,启动服务
7.配置mogilefs
添加存储主机
添加存储设备
添加域
添加class
8.配置192.168.1.203的mogilefs 。切记不要初始化数据库,配置应该与192.168.1.202一样
9.尝试上传数据,获取数据,客户端读取数据
上传数据,在任何一个节点上传都可以
获取数据
客户端查看数据
我们可以通过任何一个节点查看到数据
要想nginx能够实现对后端trucker的反向代理,必须结合第三方模块来实现
1.编译安装nginx
2.准备启动脚本
3.nginx与mofilefs互联
查看效果
5.配置后端truckers的集群
查看效果
大功告成了,后续思路,前段的nginx和数据库都存在单点故障,可以实现高可用集群
实验16 Windows环境下的文件服务器配置2007年06月12日 星期二 上午 09:001 实验目的与要求
(1) 学会安装和配置文件服务器。
(2) 学会服务器端共享文件夹的配置和管理。
(3) 学会客户端访问共享文件夹的方法。
(4) 学会分布式文件系统的设置方法。
(5) 实验学时:2
2 实验相关理论与知识
计算机网络的基本功能是在计算机间共享信息,文件共享可以说是最基本、最普遍的一种网络服务。虽然越来越多的用户购置专用文件服务器(如NAS),但是通用操作系统提供的文件服务器功能也非常实用,完全能满足一般的文件共享需求,下面主要介绍Windows Server 2003文件服务器的配置、管理和应用。
文件服务器负责共享资源的管理和传送接收,管理存储设备(硬盘、光盘、磁带)中的文件,为网络用户提供文件共享服务,也称文件共享服务器。除了文件管理功能之外,文件服务器还要提供配套的磁盘缓存、访问控制、容错等功能。部署文件服务器,主要要考虑以下3个因素。
·存取速度:快速存取服务器上的文件,例如可提供磁盘缓存加速文件读取。
·存储容量:要有足够的存储空间以容纳众多网络用户的文件,可使用磁盘阵列。
·安全措施:实现网络用户访问控制,确保文件共享安全。
文件服务器主要有两类解决方案,一类是专用文件服务器,另一类是使用PC服务器或PC计算机组建的通用文件服务器。
专用文件服务器是专门设计成文件服务器的专用计算机,以前主要是运行操作系统、提供网络文件系统的大型机、小型机,现在的专用文件服务器则主要指具有文件服务器的网络存储系统,如NAS和 SAN。NAS独立于操作系统平台,可支持多种操作系统和网络文件系统,提供集中化的网络文件服务器和存储环境,比一般的文件服务器的功能更强大,可看作是专用存储服务器,可为那些访问和共享大量文件系统数据的用户提供高效、性能价格比优异的解决方案。SAN全称存储区域网络,是一种用户存储服务的特殊网络,通常由磁盘阵列、光盘库、磁带库和光纤交换机组成。NAS可作为独立的文件服务器,提供文件级的数据访问功能,更适合文件共享。而SAN提供数据块级的数据访问功能,更适合数据库和海量数据。
目前一般用户使用PC服务器或PC计算机,通过网络操作系统来提供文件服务,UNIX、Linux、Novell、 Windows等操作系统都可提供文件共享服务。Windows网络操作系统,如Windows NT Server、Windows2000 Server和最新的Windows Server 2003由于操作管理简单、功能强大,在中小用户群中的普及率非常高,许多文件服务器都运行Windows网络操作系统。下面将重点以Windows Server 2003为例介绍文件服务器的配置、管理和应用。
3 实验环境与设备
C/S模式的网络环境,包括一台Windows XP客户机和一台Windows Server 2003服务器。
两种可选的物理拓扑(交叉线连接或通过集线器/交换机用直连线连接)。
4 实验内容与步骤
4.0 服务器的基本网络配置,包括IP地址为“192.168.105.XX”、网关为“192.168.105.254”等。(注:“XX”代表你配置机器的主机编号,“nXX”代表你的服务器主机名,例如你坐在5号机上则“XX”代表“05”,“1XX”代表“105”,配置此机的IP地址为“192.168.105.5”、主机名为“n05”,下同)。
4.1 安装和配置文件服务器
文件服务器提供网络上的中心位置,可供存储文件并通过网络与用户共享文件。当用户需要重要文件时,可以访问文件服务器上的文件,而不必在各自独立的计算机之间传送文件。如果网络用户需要对相同文件和可通过网络访问的应用程序的访问权限,就要将该计算机配置为文件服务器。默认情况下,在安装Windows Server 2003系统时,将自动安装“Microsoft网络的文件和打印共享”网络组件。如果没有该组件,可通过网络连接属性对话框安装。
1.准备工作
在部署文件服务器之前,应当做好以下准备工作。
·划出专门的硬盘分区(卷)用于提供文件共享服务,而且要保证足够的存储空间,必要时使用磁盘阵列。
·磁盘分区(卷)使用NTFS文件系统,因为FAT32缺乏安全性,而且不支持文件和文件夹压缩、磁盘配额、文件加密或单个文件权限等重要特性。
提示:使用Windows Server 2003自带的工具即可将FAT32转换成NTFS格式。该工具名为Convert.exe,位于Windows安装目录下的System32目录中。在命令行状态运行该工具即可,如Convert E:/FS:NTFS。
·确定是否要启用磁盘配额,以限制用户使用的磁盘存储空间。
·确定是否要使用索引服务,以提供更快速、更便捷的搜索服务。
2.配置文件服务器
只要将Windows Server 2003计算机上的某个文件夹共享出来,就会自动安装文件服务器,也可通过“配置您的服务器向导”工具来安装文件服务器角色。这两种方法的差别是,第二种方法提供更多的选项,并在程序菜单中提供文件服务器管理台工具。这里介绍采用第二种方法的基本步骤。
(1) 启动“配置您的服务器向导”工具。默认情况下,登录Windows Server 2003时将自动启动“管理您的服务器”(也可从控制面板中选择【管理工具】→【管理您的服务器】),单击【添加或删除角色】。另一种方法是直接从控制面板中选择【管理工具】→【管理您的服务器】→【配置您的服务器向导】。单击【下一步】按钮。
(2) 在【配置选项】界面中选择【自定义配置】,单击【下一步】按钮。
(3) 在【服务器角色】界面中,如果【文件服务器】的【已配置】状态为“否”,就单击【文件服务器】,然后单击【下一步】。
注意:如果【文件服务器】的【已配置】状态为“是”,就单击【文件服务器】,再单击【下一步】按钮打开【角色删除确认】界面,并选择【删除文件服务器角色】复选框,即可删除文件服务器角色,这样该服务器上的文件和文件夹就不再共享,依赖于这些共享资源的网络用户、程序或宿主都将无法与它们连接。
(4) 出现【文件服务器磁盘配额】对话框中,为服务器上所有NTFS分区设置默认的磁盘配额。勾选【为此服务器的新用户设置默认磁盘空间配额】和【拒绝将磁盘空间给超过配额限制的用户】。单击【下一步】按钮。默认情况下是没有启用磁盘配额。
(5) 出现【文件服务器索引服务】对话框,确定是否要使用索引服务。单击【下一步】按钮。一般情况下不需索引服务,只有在用户要经常搜索该服务器上的文件内容时才启用它。
(6) 出现【选择总结】对话框,查看和确认已经选择的选项,单击【下一步】按钮。
本例中有“设置默认磁盘配额”、“安装文件服务器管理”和“运行共享文件夹向导来添加一个新的共享文件夹或共享已有文件夹”等选项。
(7) 自动完成相关配置后,出现共享文件夹向导,根据提示配置共享文件夹以供其他用户共享。只有配置了共享文件夹之后,文件服务器才能建立。
(8) 单击【下一步】按钮,出现【文件夹路径】对话框,指定要共享的文件夹路径。可通过【浏览】在C盘目录下新建一个【FileShare】作为共享目录,此时【文件夹路径】输入框中将出现【C:\FileShare】(如果C盘中已经建立过此文件夹,才可以在此输入框中直接输入)。
(9)单击【下一步】按钮,出现【名称、描述和设置】对话框,指定共享名。
(10) 单击【下一步】按钮,出现【权限】对话框,指定共享权限为【管理员有完全访
问权限;其他用户有只读访问权限】,单击【完成】按钮。这里提供了几种预置的权限,也可以自定义权限。
(11)【共享成功】对话框中显示共享成功,给出新建共享文件夹的信息。如果要继续设置其他共享文件夹,则选中下面的复选框。单击【关闭】按钮,【完成】。
至此文件服务器配置就完成了。接下来可执行各项文件管理任务。
3.文件服务器管理工具(以下方法至少掌握一种)
Windows Server 2003提供了用于文件服务器配置管理的多种工具。
·文件服务器管理控制台:打开“管理您的服务器”工具,在【文件服务器】区域单击【管理此文件服务器】,打开该控制台。要使用“配置您的服务器向导”工具安装文件服务器,可从程序菜单中选择【管理工具】→【文件服务器管理】命令打开该控制台。
·“共享文件夹”管理工具:也可通过“计算机管理”工具中的“共享文件夹”管理工具来执行共享文件夹的配置管理,从程序菜单中选择【管理工具】→【计算机管理】,展开【共享文件夹】节点即可。
·Windows资源管理器:可直接将文件夹配置为共享文件夹。
·命令行工具:如net share可显示有关本地计算机上全部共享资源的信息。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)