SAN系统是在存储端构建存储的网络,将多个存储设备构成一个存储区域网络。前端的主机可以通过网络的方式访问后端的存储设备。而且,由于提供了块设备的访问方式,与前端操作系统无关。在SAN连接方式上,可以有多种选择。一种选择是使用光纤网络,能够操作快速的光纤磁盘。另外一种选择是使用以太网,采取iSCSI协议,能够运行在普通的局域网环境下。
由于存储区域网络中的磁盘设备并没有与某一台主机绑定在一起,而是采用了非常灵活的结构,因此对于主机来说可以访问多个磁盘设备,从而能够获得性能的提升。SAN系统与分布式文件系统例如GoogleFileSystem并不是相互对立的系统,而是在构建集群系统的时候可供选择的两种方案。其中,在选择SAN系统的时候,为了应用程序的读写,还需要为应用程序提供上层的语义接口,此时就需要在SAN之上构建文件系统。而GoogleFileSystem正好是一个分布式的文件系统,因此能够建立在SAN系统之上。总体来说,SAN与分布式文件系统都可以提供类似的功能。
(二)使用hadoop实现私有云存储
Hadoop作为Google的开源实现,其具有以下几个优点。可扩展,不论是存储的可扩展还是计算的可扩展都是Hadoop的设计根本。经济,框架可以运行在任何普通的PC上。可靠,分布式文件系统的备份恢复机制以及MapReduce的任务监控保证了分布式处理的可靠性。高效:分布式文件系统的高效数据交互实现以及MapReduce结合LocalData处理的模式,为高效处理海量的信息作了基础准备。HDFS采用java语言开发,因此很少存在兼容性问题。Hadoop这些特点适合于企业实现私有云平台。
所设计的云存储系统的体系结构由web客户端、Web操作系统、云存储服务器、云存储中心五个部分构成。其结构如图2所示。
1.客户端
客户端机群是云存储系统的前台系统,客户端机器上只需要安装浏览器就能够满足用户访问需求。用户通过浏览器访问云存储系统,其他的服务都由云存储系统在后台自动。
2.Web操作系统
这里的web操作系统采用了eysOS。EyeOS负责接收客户的访问请求,对客户的访问请求实施合法性验证。EyeOS中提供了大量的应用,允许用户根据自己的喜好下载和使用这些应用,实现系统的个性化配置,真正达到“一次配置,到处使用”。eysOS同时提供用户文件的存取接口,通过该接口可以将文件存储到Hadoop云端,同时可以通过它对文件进行各种操作。
3.云存储服务器
云存储服务器由大量的集群“云端服务器”构成,同时为Hadoop提供管理节点(NameNode),负责管理文件系统名称空间和控制外部客户机的访问。当然用户的数据也都是存储在这里的。
4.云存储中心
云存储中心由众多的服务器构成Hadoop的数据节点(DataNodes),负责保存文件数据,实现文件的分布式存储、负载平衡以及文件的容错控制。
其实施过程主要包括:
1.新建系统Hadoop用户
Hadoop要求所有机器上hadoop的部署目录结构要相同,并且都有一个相同的用户名的帐户,所以需要每台机器建一个同名的用户。在这4台机器上建hadoop用户并加入到root组,密码:hadoop,默认路径/home/hadoop/。
2.SSH设置
Hadoop需要namenode到datanode的无密码SSH,所以需要设置namenode到其他3台datanode的无密码公钥认证方式的SSH。设置完成后,测试一下namenode到各个节点的SSH链接,包括到本机,如果不需要输入密码就可以SSH登录,说明设置成功了。
3.安装JDK
到sun网站下载JDK安装包,并在每台机器的root用户下面安装。安装软件会将JDK自动安装到/usr/java/jdk1.6.0_26目录下。安装完成后再设置JDK的环境变量。考虑到JDK可能会有其他系统用户也会用到,建议将环境变量直接设置在/etc/profile中。
4.Hadoop集群配置
用hadoop用户登录namenode,在namenode上下载hadoop-0.20.2.tar.gz,将其解压到/home/hadoop/目录下,然后在hadoop下创建tmp文件夹并把Hadoop的安装路径添加到/etc/profile中修改/etc/profile文件(配置java环境变量的文件),设置HADOOP_HOME和PATH的路径,并使其有效。另外在datanode上也需要如namenode一样修改配置HADOOP_HOME和PATH。
编辑Hadoop配置文件。hadoop配置文件在conf目录下,包括:hadoop-env.sh:配置JAVA_HOME路径;core-site.xml:配置Common组件的属性;hdfs-site.xml:配置HDFS组件的属性;mapred-site.xml:配置map-reduce组件的属性;配置masters文件,加入namenode的ip地址;配置slaves文件,加入所有datanode的ip地址等。
责编:王薇
微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友