`
085567
  • 浏览: 217423 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sector/sphere

阅读更多
简介
Sector/Sphere是一个分布式存储/分布式计算系统。
此系统工作在集群的普通计算机上。
Sector提供了用户端工具,来管理系统中数据的存储。还提供了开发API,用来进行分布式数据计算的应用开发。
Project链接: Sector/Sphere SourceForge Pages
作者链接:Yunhong Gu
Sector的安装
安装和启动
安装前的准备
Sector/Sphere库包含source code, example, documention,三部分。目前所有的软件均只能在linux上工作。
软件由C++写成,需要GCC/G++ 3.4或更高版本。
还需要Openssl开发包。(e.g., libssl-dev for Debian or openssl-devel for Fedora)
软件分为四部分:the security server, the master server, the slaves, and the clients.
这几部分可以被安装在同一个node上,或者多个node上。
典型的安装方式是,master server和security server安装在一个node上,但每个slave 分别安装在一个node上。
编译安装
可以从官网上或者tar包,或者直接从SourceForge SVN上check out。
编译安装分为如下几步:
在 ./codeblue2目录下, 运行 make
更新./conf中的配置文件, 包括master.conf, slave.conf, client.conf, user accounts, and slave access control list.
如果需要, 把完整的codeblue2 目录拷贝到所有的 slaves and client 上,(不要拷贝./conf中的Keys).
启动 the security server, the master, and the slaves.
启动Servers
Security server 位于 ./codeblue2/security目录下。
通过此文件夹下的./sserver命令来启动 security server。
security server会默认的listen 5000端口。
你可以用./sserver <port> 命令来指定别的端口。
此命令不会有什么多余的输出,只是告诉你server运行在哪个端口。
Master server位于 ./codeblue2/master目录下。
通过此文件夹下的 ./start_master 命令来启动master server.
此命令必须在 ./codeblue2/master目录下运行,因为它需要确定配置文件的位置。如../conf
屏幕上不会有什么输出,在 ./master/sector.log 会记录日志文件。
你可以用命令 ./start_all 和 ./stop_all 来启动或停止master和所有的slave。
为了使用这个命令,你必须更新 "../conf/slaves.list"文件。Sector会通过读取这个文件来使用ssh连接,启动其他slaves。在这之前,master node的公共的 SSH key 必须写入所有slaves node的 ~/.ssh/authorized_keys 文件中。
如果slaves不可靠,所有列表上的slave nodes会自动的被master重新启动。
如果你不使用上述两个命令。你可以单独在每个slave上启动./codeblue2/slave目录下的 ./start_slave命令。
一般debug的时候会这么作。这样你可以在所有slave上面看到输出。
理解“证书”
Sector 用SSL来进行clients与master,master与security之间的安全通信。
这就需要两组SSL key/sertificate pairs。
这两组pairs分别为: secuirity_node.key/security_node.cert; master_node.key/master_node.cert.
所有的 keys 和certificates are put in ./codeblue2/conf.
security_node.key/security_node.cert
如果master和security server不在一个node上,security_node.cert文件必须被拷贝到master node的 ./codeblue2/conf文件加下。
但是,security_node.key一定不能拷贝过去。
这一对key和certificate被用于security server 和 master server的连接。
master_node.key/master_node.cert
master_node.cert文件必须存在于所有slave node和client node上的 ./codeblue2/conf目录下。
但是,master_node.key文件一定不能拷贝到slave和client node上。
这对key/certificate用来执行master与 slave 和 client之间的联系。
Sector中,所有的通讯都需要间接的通过master server来实现,必要时还要经过security server的认证。
Generate and distribute the certificates
软件发布包里没有kes和certificates。第一次make源代码时,所有的keys和certificates都会自动生成在./conf目录下。
如果集群没有共享文件系统,certificates需要被拷贝到所有slaves和client node上。
如果需要重新生成证书
首先删除./conf目录下的所有key和certificate。
然后运行./codeblue2/security目录下的 ssl_cert_gen 命令。
注意,keys/certificate对必须来自于同一次生成。
配置Password-free SSH
master node用SSH方式分别启动/停止每一个slaves。
master和每个slave node之间需要一个password-free SSH。
Step.1 在master node上面运行ssh-keygen.一直按回车即可。

gu@sl01:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/gu/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/gu/.ssh/id_rsa.
Your public key has been saved in /home/gu/.ssh/id_rsa.pub.
The key fingerprint is:
64:2b:aa:fb:60:65:9d:c9:e9:dd:e6:d2:4a:ee:64:1a gu@sl01.research

你会发现在~/.ssh目录下新产生了2个文件。
id_rsa包含一个private的SSH key。
id_res.pub文件包含了pulic SSH key。
所有的key information都只在一行。
gu@sl01:~/.ssh$ ls -la
total 28
drwx------ 2 gu gu 4096 2008-12-23 22:51 .
drwxr-xr-x 10 gu gu 4096 2008-12-06 20:56 ..
-rw------- 1 gu gu 1229 2008-03-19 21:35 authorized_keys
-rw------- 1 gu gu 1675 2008-12-23 22:51 id_rsa
-rw-r--r-- 1 gu gu 398 2008-12-23 22:51 id_rsa.pub
-rw-r--r-- 1 gu gu 4248 2008-12-16 18:51 known_hosts

gu@sl01:~/.ssh$
gu@sl01:~/.ssh$ more id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3qC8B3uEM8M8xyXIx/DYg7wG83dyIkta3oYUjfQmTfHs
51JHDrXxfWx+vb7w9ZtU+FGRhPscVxi8MwWEMuZt18138R2PVru5b7fK/ED/O3HHOqUqnXSc+rIIj4cR
CvCqCh+8HgP1Gt1RimYchWsfkcxofIn4YpzWrqk9h0fIsAkMIhW0wLZNetbwu8g1kuCExfe5bpaQ2rIK
7L+9ggS19Gfyea5ftKukz279y4Zu4pq3C5D7d6MpN25R9c+wmW/JlkCbdnbp7lSbgrxqMcyPiHa+oWGJ
VshT51NhvkSYBTOgC1VgafUBdMR+QjaLImNwD9rLHQW1LgUNr48Xd6aUTQ== gu@sl01.research

Step.2 把public key(id_rsa.pub)添加到每一个slave上。在每个slave的~/.ssh目录下,可能会存在一个叫做authorized_keys的文件。如果没有这个文件,就创建一个新的。打开文件,把public key复制到文件的结尾。如果文件中已经有了一个key information。就在末尾新起一行,粘贴public key的内容。

下面的例子中,最后一行是新的key,文件中原先就有了一个别的节点的 key information。
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvVhDtd6i/X3oUeLxom/z+mVfhmrW6Kvnz68DPwIQHHAU
EilcWx57MbrB7EV8+Q5iJlvg2599j+fvO39qmllkQ2YI25DmySlkSrWGa+2RyvqC0e3NB1bTSJSTqBqf
PR10HXpYa74zUzRQpOuUw8nxhzQ/KVIfUh+gdQ4BW38TxqFDCbbaX+vpcWXMxuuDqkusjdHAi3pUEpEY
3W/XH3OEk9EGZ3L20bvtw3wHvjNnLY+7vivcRtpHI9ezvX9k9L8slVOjVI9g9JxsqGT8HwR3n0/iyD4H
MZsxU2V3HPg9cD0MBVgDuMTXOdg9Ph+B1AjlLS7k8yDLLbz6zcde+TP2Xw== gu@isi01
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3qC8B3uEM8M8xyXIx/DYg7wG83dyIkta3oYUjfQmTfHs
51JHDrXxfWx+vb7w9ZtU+FGRhPscVxi8MwWEMuZt18138R2PVru5b7fK/ED/O3HHOqUqnXSc+rIIj4cR
CvCqCh+8HgP1Gt1RimYchWsfkcxofIn4YpzWrqk9h0fIsAkMIhW0wLZNetbwu8g1kuCExfe5bpaQ2rIK
7L+9ggS19Gfyea5ftKukz279y4Zu4pq3C5D7d6MpN25R9c+wmW/JlkCbdnbp7lSbgrxqMcyPiHa+oWGJ
VshT51NhvkSYBTOgC1VgafUBdMR+QjaLImNwD9rLHQW1LgUNr48Xd6aUTQ== gu@sl01.research

Step.3 从master node上用SSH 去登录 slave node。如果是第一次登录,SSH会让你确认new key 是否被 acception。按yes继续.

gu@sl01:~/.ssh$ ssh -lgu 192.168.0.1
The authenticity of host '192.168.0.1 (192.168.0.1)' can't be established.
RSA key fingerprint is 68:64:8a:ce:1a:97:d9:0d:47:55:e8:de:df:6a:19:7c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.1' (RSA) to the list of known hosts.

在所有的slave node上重复Step 2、3

配置Security server
security server掌握着所有slaves nodes的权限控制列表和所有的用户信息。
权限控制列表决定节点是否被当作一个slave node加入到Sector系统中。
用户信息包括用户的帐号、密码、IP控制和文件IO权限。
slave_acl.conf
"slave_acl.conf"文件包含一个IP地址列表(e.g., 192.168.0.1),或者一个IP地址区间(e.g., 192.168.0.0/24)。这些地址的电脑会被当作slave node 加入到系统中。
每一行表示一个IP地址,或者一个IP地址区间。
地址区间的表示利用了字节掩码,例如192.168.0.0/24 表示 192.168.0.0 - 192.168.0.255.
默认的,任何地址为(0.0.0.0/0)的节点可以被当作slaves加入到系统。
#list of IP addresses or ranges from which a slave can join the system
#by default the system is open: i.e., any node can become a slave node
#you should change this for a production system
#E.g., 192.168.0.0/24 allows all IPs within 192.168.0.0-255 to join

0.0.0.0/0

User Accounts
用户帐号信息存储于 ./codeblue2/conf/users。
每一个用户的信息存在一个text文件中。
例如:用户"test"的信息存在 ./codeblue2/conf/users/test 中。
"PASSWORD"区域是用户的密码.
"READ_PERMISSION"列出了用户可以read的文件和目录.
"WRITE_PERMISSION"列出了用户可以read的文件和目录.
"EXEC_PERMISSION"是 TRUE or FALSE 决定了用户能不能运行Sphere的应用程序。
"ACL"列出了用户可以访问的IP地址或IP地址的区间。
最后的QUOTA表示用户可以访问的磁盘空。包括用户所有可写的目录和文件夹。

配置文件中,每个选项的值前面都需要一个"TAB"字符。“#”字符可以被用来注释一行。
#user's password
PASSWORD
    xxx

#directories that the user can read, one per line
#default is none, which means the user cannot read anything, same for write
READ_PERMISSION
    /test
    /angle
    /

#directories that the user can write or modify
WRITE_PERMISSION
    /angle
    /

#if the user is allowed to run Sphere process, default is false.
#All capital letters "TRUE" must be used, otherwise it will be treated as false
EXEC_PERMISSION
    TRUE

#list of IP addresses from which the user is allowed to login, one per line.
#this field must exist, otherwise the user will not be able to login
ACL
    0.0.0.0/0

#the user's quota, which is the size limit of all the directories he/she has the write permission
#unit is MB
QUOTA
    1000000

配置Master server
配置Slave server
配置Client server
Sector-FUSE文件系统
Sector的使用

分享到:
评论

相关推荐

    sector/sphere 源代码

    《 Sector/Sphere 源代码解析:C++ 实现MapReduce技术在云计算中的应用》 在信息技术领域,云计算已经成为一种主流的计算模式,它通过分布式处理、并行处理和大规模数据存储来提供高效能的计算服务。MapReduce是...

    云数据管理研究综述

    作为一种全新的互联网应用模式,...计算技术的基础上,提出了云数据管理系统的概念,深度剖析了BigTable、Hbase、Sector/Sphere 等当 前互联网主流云数据管理系统的基本原理,最后指出了云数据管理领域的主要研究方向。

    基于高性能云数据挖掘的算法研究.pdf

    本文提出的高性能云数据挖掘算法,主要依赖于两个核心组件:Sector和Sphere框架。Sector负责管理大型数据集的分布式存储,利用其分布式索引功能保证数据集的长期持久存储。它通过将数据分布存储在不同的分割碎片中来...

    集合了国外云计算30多篇论文2

    6. **SectorandSphere.pdf**:文件名暗示可能讨论了一种特定的云存储或分布式系统架构,如Sector/Sphere项目,它可能是一种开放源代码的分布式存储系统。 7. **MRGIS - A MapReduce-Enabled High Performance ...

    sector.2.8.tar.gz

    "sector.2.8.tar.gz" 是一个包含 Sector 和 Sphere 云计算系统的安装包,它基于通用数据传输(UDT)协议。这个压缩包的核心在于其分布式计算和云计算能力,让我们详细了解一下相关知识点。 1. **UDT(通用数据传输...

    SAGA-开源

    SAGA-网格应用程序的简单API。 OGF GWD-R.90标准(SAGA核心)实现。 它带有许多用于云和网格中间件的中间件适配器,例如Globus,LSF,Condor,Sector / Sphere,EC2,SSH等。

    基于主流云计算技术的集群三元空间提取方法

    本文对目前代表性的云计算技术进行了回顾,选择其中的HDFS提取主要组成元素分析整理,抽象出若干对象集和关系集,进而提出集群三元空间。从抽象层面回归到具体实现,HDFS对集群三元空间的实现采用了集中式结构,形成...

    Compute and Storage Clouds Using Wide Area

    该系统由两部分组成:**存储云**(Sector)和**计算云**(Sphere)。作者还描述了两个利用这种云环境构建的应用实例以及相关的实验研究。 #### 重要性及发展趋势 云计算作为一种新兴的技术,近年来得到了快速发展...

    dsp-csv-gen

    Dyson Sphere计划的星区资源电子表格生成器DSP Star Sector资源电子表格生成器是由Youthcat Studio开发并由Gamera Game发行的Unity游戏Dyson Sphere Program的mod。 游戏可以在。 此mod生成一个逗号分隔值的csv文件...

    37篇经过消化云计算论文打包下载

    12、 Sector and Sphere: The Design and Implementation of a High Performance Data Cloud 在这篇论文中,我们介绍了一个新的云计算软件,他包括Sector存储云和Sphere计算云。对比现有的数据云,Sector不但支持...

    37篇经过消化的云计算论文

    Sector and Sphere: The Design and Implementation of a High Performance Data Cloud 在这篇论文中,我们介绍了一个新的云计算软件,他包括Sector存储云和Sphere计算云。对比现有的数据云,Sector不但支持作为...

    云计算第二版

    8.1.6 Sector and Sphere 245 8.1.7 abiquo 247 8.1.8 MongoDB 247 8.2 Cassandra 249 8.2.1 体系结构 249 8.2.2 数据模型 250 8.2.3 存储机制 251 8.2.4 读/写删过程 252 8.3 Hive 254 8.3.1 整体构架 254 8.3.2 ...

    美国高中专业学科词汇大全.doc

    80. **球体(sphere)**:所有点到固定点(球心)距离相等的点的集合。 81. **正方形(square)**:四边相等且四个角都是直角的四边形。 82. **平方根(square root)**:一个数的平方根等于平方等于这个数的非负数...

Global site tag (gtag.js) - Google Analytics