在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
https://www.cnblogs.com/fczjuever/archive/2013/05/11/3073151.html 首先要感谢liu大神的翻译与试验,http://www.cnblogs.com/yuki-lau/ 简介 本文详细描述使用单台服务器部署一个Swift开发版本的过程,单台服务器运行所有Swift服务,并模拟运行具有4个结点的Swift集群。其中,这里的“服务器”可以是物理机也可以是虚拟机。 已验证的部署环境:
本文档基于:
请确保安装的Swift版本和本文档中的版本相同。如有问题,请参考官网的更新文档。 1. 安装依赖包和核心代码 1. 以root身份登录。
2. 安装必须的依赖包、库。
3. 创建swift用户和组。在此,我们直接使用root作为用户名和组名。 接下来,需要选择使用一个分区作为存储(Using a partition for storage)或使用一个回环设备作为存储(Using a loopback device for storage),本文档使用回环设备作为存储。若希望使用一个单独的分区作为存储,请参阅这里。 2. 使用回环设备作为存储1. 创建存储文件夹。
2. 调整seek的值,可以创建一个更大或更小的分区。
3. 编辑/etc/fstab并添加如下一行。
4. 创建挂载文件夹,并挂载。
5. 创建4个子节点文件夹。
6. 改变权限,root:root对应<your-user-name>:<your-group-name>。
7. 为4个子节点创建同步链接。
8. 创建server等文件夹,并改编权限。注意,不要忘记/etc/swift /srv/[1-4]/最后一个“/”。
9. 编辑文件/etc/rc.local,在exit 0 之前添加如下4行。
3. 设置Rsync1. 创建文件/etc/rsyncd.conf,内容如下:
2. 编辑文件/etc/default/rsync,设置参数RSYNC_ENABLE为true。
3. 启动rsync服务
4. 设置独立日志(可选)1. 创建文件/etc/rsyslog.d/10-swift.conf,内容如下:
2. 编辑文件/etc/rsyslog.conf,更改参数$PrivDropToGroup为adm。
3. 创建swift每小时的文件夹。
4. 更改swift的log文件夹权限。
5. 重启rsyslog服务。
5. 获取代码并设置测试环境若不打算在全root权限下安装Swift,则需要切换回guest权限。此处,我们全部使用root安装。 1. 创建文件夹。
2. 从git上获取swift代码,下载到本地。
3. 安装Swift的开发版本。
4. 从git上获取python-swiftclient代码,下载到本地。
5. 安装python-swiftclient的开发版本。
6. 编辑文件~/.bashrc,并在文件尾添加如下内容:
7. 执行。
6. 配置结点1. 创建文件/etc/swift/proxy-server.conf,文件内容如下:
2. 创建文件/etc/swift/swift.conf,文件内容如下:
3. 创建文件/etc/swift/account-server/1.conf,文件内容如下:
4. 创建文件/etc/swift/account-server/2.conf,文件内容如下:
5. 创建文件/etc/swift/account-server/3.conf,文件内容如下:
6. 创建文件/etc/swift/account-server/4.conf,文件内容如下:
7. 创建文件/etc/swift/container-server/1.conf,文件内容如下:
8. 创建文件/etc/swift/container-server/2.conf,文件内容如下:
9. 创建文件/etc/swift/container-server/3.conf,文件内容如下:
10. 创建文件/etc/swift/container-server/4.conf,文件内容如下:
11. 创建文件/etc/swift/object-server/1.conf,文件内容如下:
12. 创建文件/etc/swift/object-server/2.conf,文件内容如下:
13. 创建文件/etc/swift/object-server/3.conf,文件内容如下:
14. 创建文件/etc/swift/object-server/4.conf,文件内容如下:
7. 创建Swift运行脚本1. 创建脚本~/bin/resetswift,内容如下。注意,如果使用的是单独分区存储需要将/srv/swift-disk替换为/dev/sdb1;如果没有创建rsyslog作为独立日志,则需要移除find /var/log/swift... 这一行。
2. 创建脚本~/bin/remakerings,内容如下:
3. 创建脚本~/bin/startmain,内容如下:
4. 创建脚本~/bin/startrest,内容如下:
5. 更改脚本权限。
6. 创建rings。
7. 执行功能单元测试,出现“Unable to read test config /etc/swift/test.conf – file not found”,可不必理会,或手动复制过去(配置文件在swift/test/sample.conf)。
8. 运行swift,出现“Unable to increase file descriptor limit. Running as non-root?”警告为正常现象,不必理会。
8. 简单使用完成安装部署后,可以使用swift --help命令查看Swift帮助信息。
1. 获取一个 X-Storage-Url 和 X-Auth-Token。
可以得到以下返回信息:
2. 检查账户。注意,X-Auth-Token:与<token-from-x-auth-token-above>之间存在一个空格,一定不能丢。
3. 检查Swift工作。
正确情况下,应该输出以下信息:
4. 创建container,创建一个名称为container_test的container(目录),注意使用当前的token。
正确情况下,应该得到以下信息:
5. 查看test用户的container列表,发现只有一个目录:container_test。
6. 上传Object(文件),上传hello文件到container_test目录中。
7. 查看目录中的内容,查看container_test目录中的内容。
8. 下载Object(文件)下载container_test下的object。
将container_test目录内的所有内容下载到目前所在目录。注意:如果上传文件的时候,有嵌套目录,则上传到Swift上后,也是以嵌套目录的形式存在,下载后,会在当前目录创建一样的嵌套目录。 补充说明: 现在已经完成SAIO的部署了,下面介绍一下系统环境的改变: 1. ~/swift目录下存放Swift与python-swiftclient的源代码与执行脚本。
2. /usr/local/lib/python2.7/dist-packages、/usr/share/pyshared、/usr/bin、/usr/local/bin等目录下存放Swift与python-swiftclient安装后的程序文件。 3. Swift的回环设备挂载在/mnt/sdb1目录上。 4. 回环设备对应的文件为/srv/swift-disk。 5. 四个存储节点对应的实际存储空间(即共享上述回环设备)——/mnt/sdb1/1、/mnt/sdb1/2、/mnt/sdb1/3、/mnt/sdb1/4。 6. 四个存储节点指向实际存储空间的软链接——/srv/1、/srv/2、/srv/3、/srv/4。 7. 四个存储节点的对应的虚拟挂载点——/srv/1/node/sdb1、/srv/2/node/sdb2、/srv/2/node/sdb2、/srv/2/node/sdb2。 8. Swift运行时所需目录/var/run/swift,用于存放各个服务进程的pid文件等内容。 9. Swift临时缓存的目录(姑且这么理解)——/var/cache/swift、/var/cache/swift2、/var/cache/swift3、/var/cache/swift4。 10. /etc/swift目录中存放Swift自身的配置文件。
11. /var/log/swift目录下存放rsyslog独立日志工具输出的日志文件。 12. 其他被创建的文件:
13. 其他被修改的文件:
|
请发表评论