[仅做备份]Openstack 学习记录 (1 Swift SAIO安装)

这篇博客记录了在Ubuntu 12.04环境中安装Swift Simple All-In-One (SAIO) 的详细步骤,包括环境配置、软件包安装、磁盘创建与格式化、配置文件编辑、服务启动与测试。通过这个过程,作者建立了一个基本可用的Swift测试环境。
摘要由CSDN通过智能技术生成

安装于:UBUNTU64D 使用ubuntu12.04.1,包含eclipse+pydev。仅做为个人SAIO尝试安装的记录。以免后面忘记

安装环境为虚拟机,预分配8G空间磁盘,安装过程完成后虚拟磁盘直接拷贝出来备份,以免今后操作破坏环境而再次安装。

安装的结果并没有完全达到预期,仅仅是完成了一个基本可用的SAIO安装的swift。

===============================================================

root@aaron218VM1:/# apt-get install python-software-properties

正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
python-software-properties 已经是最新的版本了。

升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 14 个软件包未被升级。

大概是使用apt-get update/upgrade更新整个系统的时候完成了全部的更新


root@aaron218VM1:/# add-apt-repository ppa:swift-core/release
You are about to add the following PPA to your system:
 
 More info: https://launchpad.net/~swift-core/+archive/release
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: 钥匙环‘/tmp/tmpX9D_3A/secring.gpg’已建立
gpg: 钥匙环‘/tmp/tmpX9D_3A/pubring.gpg’已建立
gpg: 下载密钥‘562598B4’,从 hkp 服务器 keyserver.ubuntu.com
gpg: /tmp/tmpX9D_3A/trustdb.gpg:建立了信任度数据库
gpg: 密钥 562598B4:公钥“Launchpad Swift Packages”已导入
gpg: 合计被处理的数量:1
gpg:               已导入:1  (RSA: 1)

OK

增加源

root@aaron218VM1:/# apt-get update

内容省略,中间会获取一些软件包,更新一些数据。有时候会有一些无法下载的问题,可以尝试重复执行命令。

root@aaron218VM1:/# apt-get install curl gcc git-core memcached python-coverage python-dev python-nose python-setuptools python-simplejson python-xattr sqlite3 xfsprogs python-eventlet python-greenlet python-pastedeploy python-netifaces python-pip
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
gcc 已经是最新的版本了。
python-simplejson 已经是最新的版本了。
将会安装下列额外的软件包:
  git git-man liberror-perl libexpat1-dev libreadline5 libssl-dev libssl-doc
  python-formencode python-openid python-paste python-pastescript python-scgi
  python2.7-dev zlib1g-dev
建议安装的软件包:
  git-daemon-run git-daemon-sysvinit git-doc git-el git-arch git-cvs git-svn
  git-email git-gui gitk gitweb libcache-memcached-perl libmemcached
  libjs-jquery-tablesorter python-dns python-greenlet-doc python-greenlet-dev
  python-greenlet-dbg python-nose-doc python-pastewebkit libapache2-mod-wsgi
  libapache2-mod-python libapache2-mod-scgi python-pgsql libjs-sphinxdoc
  libjs-mochikit python-flup python-cherrypy python-cheetah sqlite3-doc
  xfsdump attr quota
下列【新】软件包将被安装:
  curl git git-core git-man liberror-perl libexpat1-dev libreadline5
  libssl-dev libssl-doc memcached python-coverage python-dev python-eventlet
  python-formencode python-greenlet python-netifaces python-nose python-openid
  python-paste python-pastedeploy python-pastescript python-pip python-scgi
  python-setuptools python-xattr python2.7-dev sqlite3 xfsprogs zlib1g-dev
升级了 0 个软件包,新安装了 29 个软件包,要卸载 0 个软件包,有 14 个软件包未被升级。
需要下载 42.6 MB 的软件包。
解压缩后会消耗掉 75.7 MB 的额外空间。

更新 安装所依赖的软件包,同样,如果出现错误,可以尝试重复执行命令。

root@aaron218VM1:/# pip install mock
Downloading/unpacking mock
  Downloading mock-1.0.1.tar.gz (818Kb): 818Kb downloaded
  Running setup.py egg_info for package mock
    
    warning: no files found matching '*.png' under directory 'docs'
    warning: no files found matching '*.css' under directory 'docs'
    warning: no files found matching '*.html' under directory 'docs'
    warning: no files found matching '*.js' under directory 'docs'
Installing collected packages: mock
  Running setup.py install for mock
    
    warning: no files found matching '*.png' under directory 'docs'
    warning: no files found matching '*.css' under directory 'docs'
    warning: no files found matching '*.html' under directory 'docs'
    warning: no files found matching '*.js' under directory 'docs'
Successfully installed mock
Cleaning up...
安装mock,其后根据需要安装ssh等

root@aaron218VM1:~# mkdir /srv
root@aaron218VM1:/srv# dd if=/dev/zero of=/srv/swift-disk bs=1024 count=0 seek=1000000
root@aaron218VM1:/srv# mkfs.xfs -i size=1024 /srv/swift-disk
meta-data=/srv/swift-disk        isize=1024   agcount=4, agsize=62500 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=250000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=1216, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =无                    extsz=4096   blocks=0, rtextents=0
创建一个xfs的分区。


编辑文件 /etc/fstab 并写入

/srv/swift-disk /mnt/sdb1 xfs loop,noatime,nodiratime,nobarrier,logbufs=8 0 0

root@aaron218VM1:/srv# mkdir /mnt/sdb1
root@aaron218VM1:/srv# mount /mnt/sdb1
root@aaron218VM1:/srv# mkdir /mnt/sdb1/1 /mnt/sdb1/2 /mnt/sdb1/3 /mnt/sdb1/4
root@aaron218VM1:/srv# chown root:root /mnt/sdb1/*
root@aaron218VM1:/srv# for x in {1..4}; do ln -s /mnt/sdb1/$x /srv/$x; done
root@aaron218VM1:/srv# mkdir -p /etc/swift/object-server /etc/swift/container-server /etc/swift/account-server /srv/1/node/sdb1 /srv/2/node/sdb2 /srv/3/node/sdb3 /srv/4/node/sdb4 /var/run/swift
root@aaron218VM1:/srv# chown -R root:root /etc/swift /srv/[1-4]/ /var/run/swift
创建按照loopback方式创建的分区,并且分配目录和权限。
编辑文件 /etc/rc.local。并且在内容的exit 0 之前加入以下内容:

mkdir -p /var/cache/swift /var/cache/swift2 /var/cache/swift3 /var/cache/swift4
chown <your-user-name>:<your-group-name> /var/cache/swift*
mkdir -p /var/run/swift
chown <your-user-name>:<your-group-name> /var/run/swift

配置RSYNC

创建文件 /etc/rsyncd.conf 并加入一下内容:

uid = root
gid = root
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = 127.0.0.1

[account6012]
max connections = 25
path = /srv/1/node/
read only = false
lock file = /var/lock/account6012.lock

[account6022]
max connections = 25
path = /srv/2/node/
read only = false
lock file = /var/lock/account6022.lock

[account6032]
max connections = 25
path = /srv/3/node/
read only = false
lock file = /var/lock/account6032.lock

[account6042]
max connections = 25
path = /srv/4/node/
read only = false
lock file = /var/lock/account6042.lock


[container6011]
max connections = 25
path = /srv/1/node/
read only = false
lock file = /var/lock/container6011.lock

[container6021]
max connections = 25
path = /srv/2/node/
read only = false
lock file = /var/lock/container6021.lock

[container6031]
max connections = 25
path = /srv/3/node/
read only = false
lock file = /var/lock/container6031.lock

[container6041]
max connections = 25
path = /srv/4/node/
read only = false
lock file = /var/lock/container6041.lock


[object6010]
max connections = 25
path = /srv/1/node/
read only = false
lock file = /var/lock/object6010.lock

[object6020]
max connections = 25
path = /srv/2/node/
read only = false
lock file = /var/lock/object6020.lock

[object6030]
max connections = 25
path = /srv/3/node/
read only = false
lock file = /var/lock/object6030.lock

[object6040]
max connections = 25
path = /srv/4/node/
read only = false
lock file = /var/lock/object6040.lock
然后,在Ubuntu系统下,修改/etc/default/rsync文件,将RSYNCENABLE改成true

创建文件/etc/rsyslog.d/10-swift.conf,写入以下内容:

# Uncomment the following to have a log containing all logs together
#local1,local2,local3,local4,local5.*   /var/log/swift/all.log

# Uncomment the following to have hourly proxy logs for stats processing
#$template HourlyProxyLog,"/var/log/swift/hourly/%$YEAR%%$MONTH%%$DAY%%$HOUR%"
#local1.*;local1.!notice ?HourlyProxyLog

local1.*;local1.!notice /var/log/swift/proxy.log
local1.notice           /var/log/swift/proxy.error
local1.*                ~

local2.*;local2.!notice /var/log/swift/storage1.log
local2.notice           /var/log/swift/storage1.error
local2.*                ~

local3.*;local3.!notice /var/log/swift/storage2.log
local3.notice           /var/log/swift/storage2.error
local3.*                ~

local4.*;local4.!notice /var/log/swift/storage3.log
local4.notice           /var/log/swift/storage3.error
local4.*                ~

local5.*;local5.!notice /var/log/swift/storage4.log
local5.notice           /var/log/swift/storage4.error
local5.*                ~
编辑文件/etc/rsyslog.conf,并修改以下内容

$PrivDropToGroup adm

root@aaron218VM1:/srv# mkdir -p /var/log/swift/hourly
root@aaron218VM1:/srv# chown -R syslog.adm /var/log/swift
root@aaron218VM1:/srv# chmod -R g+w /var/log/swift
root@aaron218VM1:/srv# service rsyslog restart
rsyslog stop/waiting
rsyslog start/running, process 3249
配置log服务并重启

获取代码并配置测试环境,下面的操作可以在来宾账户下面运行(或者其他需要开发测试的账户,本机上是aaron218)

aaron218@aaron218VM1:~$ mkdir ~/bin

aaron218@aaron218VM1:~$ git clone https://github.com/openstack/swift.git
Cloning into 'swift'...
remote: Counting objects: 16685, done.
remote: Compressing objects: 100% (4046/4046), done.
remote: Total 16685 (delta 12860), reused 16000 (delta 12373)
Receiving objects: 100% (16685/16685), 10.18 MiB | 688 KiB/s, done.
Resolving deltas: 100% (12860/12860), done.


aaron218@aaron218VM1:~$ cd ~/swift; sud

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值