Swift All In One(SAIO,Swift单机版)部署文档(一)
接下来我将介绍基于Swift的开发。
这里的Swift指的是Openstack的一个对象存储模块,可以完成对容器和对象的存储和维护等功能。
以下几篇Openstack有关的内容,都将使用Openstack Liberty版本来介绍。
对于开发来说,首先需要部署Swift。SAIO即为将Swift的所有的组件安装在一台设备上的方式来部署。
这种部署方式可以方便Swift开发。
这篇文档是SAIO安装的第一部分。
基本环境安装和配置
安装Ubuntu 14.04操作系统。
由于我们身处国内,所以需要换下Ubuntu的安装源。更换成国内镜像。
安装需要的组件
sudo apt-get update
sudo apt-get install curl gcc memcached rsync sqlite3 xfsprogs \\
git-core libffi-dev python-setuptools \\
liberasurecode-dev
sudo apt-get install python-coverage python-dev python-nose \\
python-xattr python-eventlet \\
python-greenlet python-pastedeploy \\
python-netifaces python-pip python-dnspython \\
python-mock
部署存储设备
这一步主要目的是给连接在存储服务器的存储设备建立挂载点。
因为我们是虚机模拟环境下的All-in-One安装,所以我们使用回环设备(loopback device)。
1) 建立回环设备
sudo mkdir /srv
sudo truncate -s 1GB /srv/swift-disk
sudo mkfs.xfs /srv/swift-disk
这里面的truncate命令是用来调整分区大小的。
2) 接下来编辑 /etc/fstab
文件,添加下面内容:
/srv/swift-disk /mnt/sdb1 xfs loop,noatime,nodiratime,nobarrier,logbufs=8 0 0
修改这个文件的目的是在系统启动时能够自动挂载分区。
3) 建立挂载点并添加链接
sudo mkdir /mnt/sdb1
sudo mount /mnt/sdb1
sudo mkdir /mnt/sdb1/1 /mnt/sdb1/2 /mnt/sdb1/3 /mnt/sdb1/4
sudo chown ${USER}:${USER} /mnt/sdb1/*
for x in {1..4}; do sudo ln -s /mnt/sdb1/$x /srv/$x; done
sudo mkdir -p /srv/1/node/sdb1 /srv/1/node/sdb5 \\
/srv/2/node/sdb2 /srv/2/node/sdb6 \\
/srv/3/node/sdb3 /srv/3/node/sdb7 \\
/srv/4/node/sdb4 /srv/4/node/sdb8 \\
/var/run/swift
sudo chown -R ${USER}:${USER} /var/run/swift
# **Make sure to include the trailing slash after /srv/$x/**
for x in {1..4}; do sudo chown -R ${USER}:${USER} /srv/$x/; done
添加启动设备
将下面的内容添加到 /etc/rc.local
(使用自己的用户名替代下面的 sysadm )
mkdir -p /var/cache/swift /var/cache/swift2 /var/cache/swift3 /var/cache/swift4
chown sysadm:sysadm /var/cache/swift*
mkdir -p /var/run/swift
chown sysadm:sysadm /var/run/swift
正式部署
获取代码
1) 从git版本库中检出python-swiftclient代码
cd $HOME
git clone https://github.com/openstack/python-swiftclient.git
2) 以develop模式安装python-swiftclient
cd $HOME/python-swiftclient
sudo pip install -r requirements.txt
sudo python setup.py develop
cd -
3) 同样的步骤,这次检出swift代码
cd $HOME
git clone https://github.com/openstack/swift.git
4) 同样安装develop模式下的swift
cd $HOME/swift
sudo pip install -r requirements.txt
sudo python setup.py develop
cd -
我在安装这一步的时候出了问题,手工编辑了·
requirements.txt文件,删掉了
;python-version`部分才得以成功。
5) 安装swift测试用依赖
cd $HOME/swift; sudo pip install -r test-requirements.txt
设置rsync
1) 首先建立 /etc/rsyncd.conf
复制样例文件到/etc
目录下。然后修改其中的<your-user-name>
为当前用户名。
sudo cp $HOME/swift/doc/saio/rsyncd.conf /etc/
sudo sed -i \"s/<your-user-name>/${USER}/\" /etc/rsyncd.conf
2) 启用rsync
编辑/etc/default/rsync
。找到下面一行,将值修改为true
RSYNC_ENABLE=true
3) 关闭SELinux(如果没有SELinux就跳过这一步)
使用下面的命令:
sudo setenforce Permissive
或者是仍然开启SELinux,仅是给rsync完全访问权限。
sudo setsebool -P rsync_full_access 1
4) 启动rsync服务
sudo service rsync restart
5) 上面几步完成后,你可以通过运行下面的命令来检查rsync有没有正常工作
rsync rsync://pub@localhost/
启用memcached
我们上面用apt-get安装了memcached,启用方式和同类服务类似:
sudo service memcached start
sudo chkconfig memcached on
(可选)设置独立日志
虽然这个被官方标为“可选”,换句话说就是可以不用配置,不过日志在开发调试中起到的作用是很大的。这个独立日志功能还是推荐启用。
1) 将示例配置文件复制到rsyslog的配置目录中
sudo cp $HOME/swift/doc/saio/rsyslog.d/10-swift.conf /etc/rsyslog.d/
2) 在/etc/rsyslog.conf
中进行如下的配置
这个配置项通常在 GLOBAL DIRECTIVES
部分中。
$PrivDropToGroup adm
3) 建立小时目录
sudo mkdir -p /var/log/swift/hourly
4) 修改日志目录权限并启用日志
sudo chown -R syslog.adm /var/log/swift
sudo chmod -R g+w /var/log/swift
sudo service rsyslog restart
再写下去这篇内容就太长了,接下来的内容请关注: