• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift安装

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
Server1

1.Update
sudo apt-get update
sudo apt-get upgrade

2.
sudo apt-get install bridge-utils

3.IP
3.1
sudo vi /etc/network/interfaces
----------------------------------------------
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.75.110
netmask 255.255.255.0
broadcast 192.168.75.255
gateway 192.168.75.2
dns-nameservers 192.168.75.2

auto eth1
iface eth1 inet static
address 192.168.4.1
netmask 255.255.255.0
network 192.168.4.0
broadcast 192.168.4.255
3.2
sudo /etc/init.d/networking restart

4.NTP Server
4.1
sudo apt-get install ntp

4.2
sudo vi /etc/ntp.conf

--------------------------------
server ntp.ubuntu.com
server 127.127.1.0
fudge 127.127.1.0 stratum 10

4.3
sudo service ntp restart

5.database
5.1
sudo apt-get install mysql-server python-mysqldb

设置密码:gis

5.2
sudo vi /etc/mysql/my.cnf

-------------------------------------
bind-address = 0.0.0.0

5.3
sudo restart mysql

sudo mysql -u root -p
use mysql

select host, user, password from user;
    delete from user where user='root' and host='localhost';
    delete from user where user='root' and host='::1';
    delete from user where user='root' and host='127.0.0.1';
    delete from user where user='';
    update user set host='%' where user='root';
    commit;
sudo restart mysql

5.4
sudo mysql -u root -p -e 'CREATE DATABASE keystone;'

5.5
sudo mysql -u root -p -e 'CREATE USER keystone;'

5.6
sudo mysql -u root -p -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%';"
sudo mysql -u root -p -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost'"

5.7
sudo mysql -u root -p -e "SET PASSWORD FOR 'keystone'@'%' = PASSWORD('gis');"

6.
sudo apt-get install keystone

6.1
sudo rm /var/lib/keystone/keystone.db

6.2
sudo vi /etc/keystone/keystone.conf

bind_host = 0.0.0.0
public_port = 5000
admin_port = 35357
admin_token = 012345SECRET99TOKEN012345
compute_port = 8774
verbose = True
debug = True
log_config = /etc/keystone/logging.conf
use_syslog = False

connection = mysql://keystone:[email protected]/keystone

6.3
sudo keystone-manage pki_setup

sudo chown -R keystone:keystone /etc/keystone/

sudo chmod g+rx,o+rx -R /etc/keystone/

sudo chmod -R g+rwx,o+rwx /var/log/keystone/

6.4
sudo service keystone restart

6.5
sudo keystone-manage db_sync



7 identity
7.1
export OS_SERVICE_TOKEN=012345SECRET99TOKEN012345
export OS_SERVICE_ENDPOINT=http://192.168.75.110:35357/v2.0

keystone tenant-create --name demo --description "Default Tenant"

+-------------+----------------------------------+
|   Property    |              Value                              |
+-------------+----------------------------------+
| description  |          Default Tenant                  |
|   enabled     |               True                               |
|      id            | 3b440084158a42c0917603e066261aaf |
|     name       |               demo                             |
+-------------+----------------------------------+

keystone user-create --tenant-id 3b440084158a42c0917603e066261aaf --name admin --pass secrete

+----------+----------------------------------+
| Property  |              Value                             |
+----------+----------------------------------+
|  email      |                                                     |
| enabled   |               True                              |
|    id          | d99081655e834ded8abea8e6f6e111bb |
|   name     |              admin                            |
| tenantId  | 3b440084158a42c0917603e066261aaf |
+----------+----------------------------------+

keystone role-create --name admin

+----------+----------------------------------+
| Property  |              Value                             |
+----------+----------------------------------+
|    id          | c55516c9bcae400bad38b96e98e35279 |
|   name     |              admin                           |
+----------+----------------------------------+



keystone user-role-add --user-id d99081655e834ded8abea8e6f6e111bb --tenant-id 3b440084158a42c0917603e066261aaf --role-id c55516c9bcae400bad38b96e98e35279


7.2

keystone tenant-create --name service --description "Service Tenant"

+-------------+----------------------------------+
|   Property     |              Value                            |
+-------------+----------------------------------+
| description  |          Service Tenant                  |
|   enabled     |               True                              |
|      id             | d5f00c8160b94fc5acdf2f2a79d790dc |
|     name       |             service                             |
+-------------+----------------------------------+

keystone user-create --tenant-id d5f00c8160b94fc5acdf2f2a79d790dc --name glance --pass glance

+----------+----------------------------------+
| Property  |              Value                             |
+----------+----------------------------------+
|  email      |                                                    |
| enabled  |               True                              |
|    id          | 2d16d19937fd4f3eba46a48d0a5d1c90 |
|   name    |              glance                            |
| tenantId | d5f00c8160b94fc5acdf2f2a79d790dc |
+----------+----------------------------------+

keystone user-role-add --user-id 2d16d19937fd4f3eba46a48d0a5d1c90 --tenant-id d5f00c8160b94fc5acdf2f2a79d790dc --role-id c55516c9bcae400bad38b96e98e35279

keystone user-create --tenant-id d5f00c8160b94fc5acdf2f2a79d790dc --name ec2 --pass ec2

+----------+----------------------------------+
| Property  |              Value                             |
+----------+----------------------------------+
|  email      |                                                    |
| enabled   |               True                             |
|    id          | 2782536bd49a4802a575301ccdb44324 |
|   name     |               ec2                               |
| tenantId  | d5f00c8160b94fc5acdf2f2a79d790dc |
+----------+----------------------------------+

keystone user-role-add --user-id 2782536bd49a4802a575301ccdb44324 --tenant-id d5f00c8160b94fc5acdf2f2a79d790dc --role-id c55516c9bcae400bad38b96e98e35279

keystone user-create --tenant-id d5f00c8160b94fc5acdf2f2a79d790dc --name swift --pass swiftpass

+----------+----------------------------------+
| Property  |              Value                             |
+----------+----------------------------------+
|  email      |                                                     |
| enabled  |               True                               |
|    id          | cdee582c005745808f064ceea1e20953 |
|   name    |              swift                                |
| tenantId | d5f00c8160b94fc5acdf2f2a79d790dc |
+----------+----------------------------------+

keystone user-role-add --user-id cdee582c005745808f064ceea1e20953 --tenant-id d5f00c8160b94fc5acdf2f2a79d790dc --role-id c55516c9bcae400bad38b96e98e35279

7.3

keystone service-create --name=keystone --type=identity --description="Identity Service"

+-------------+----------------------------------+
|   Property    |              Value                             |
+-------------+----------------------------------+
| description  |         Identity Service                  |
|      id             | c697cfd78fa14b8eaf296af2569b711c |
|     name       |             keystone                        |
|     type          |             identity                          |
+-------------+----------------------------------+

keystone endpoint-create \
--region RegionOne \
--service-id=c697cfd78fa14b8eaf296af2569b711c \
--publicurl=http://192.168.75.110:5000/v2.0 \
--internalurl=http://192.168.75.110:5000/v2.0 \
--adminurl=http://192.168.75.110:35357/v2.0

+-------------+----------------------------------+
|   Property    |              Value                              |
+-------------+----------------------------------+
|   adminurl   | http://192.168.75.110:35357/v2.0 |
|      id            | 6a32df6c6c714e30a9830cfe39e8d64f |
| internalurl   | http://192.168.75.110:5000/v2.0  |
|  publicurl     | http://192.168.75.110:5000/v2.0  |
|    region       |            RegionOne             |
|  service_id    | c697cfd78fa14b8eaf296af2569b711c |
+-------------+----------------------------------+

keystone service-create --name=ec2 --type=ec2 --description="EC2 Compatibility Layer"

+-------------+----------------------------------+
|   Property    |              Value                             |
+-------------+----------------------------------+
| description  |     EC2 Compatibility Layer        |
|      id             | 528b19e43cec466192c770c26d3a73a3 |
|     name       |               ec2                                |
|     type         |               ec2                                |
+-------------+----------------------------------+

keystone --token 012345SECRET99TOKEN012345 \
--endpoint http://192.168.75.110:35357/v2.0/ \
endpoint-create \
--region RegionOne \
--service-id=528b19e43cec466192c770c26d3a73a3 \
--publicurl=http://192.168.75.110:8773/services/Cloud \
--internalurl=http://192.168.75.110:8773/services/Cloud \
--adminurl=http://192.168.75.110:8773/services/Admin

+-------------+-------------------------------------------+
|   Property    |                   Value                   |
+-------------+-------------------------------------------+
|   adminurl   | http://192.168.75.110:8773/services/Admin |
|      id            |      64007630d09c450a8418985c98dbcd07     |
| internalurl   | http://192.168.75.110:8773/services/Cloud |
|  publicurl     | http://192.168.75.110:8773/services/Cloud |
|    region       |                 RegionOne                 |
|  service_id    |      528b19e43cec466192c770c26d3a73a3     |
+-------------+-------------------------------------------+


keystone service-create --name=swift --type=object-store --description="Object Storage Service"

+-------------+----------------------------------+
|   Property    |              Value               |
+-------------+----------------------------------+
| description  |      Object Storage Service      |
|      id            | b162fbd8a371465bba07b9c0ea3f9c32 |
|     name       |              swift               |
|     type          |           object-store           |
+-------------+----------------------------------+

 keystone endpoint-create \
--region RegionOne \
--service-id=b162fbd8a371465bba07b9c0ea3f9c32 \
--publicurl 'http://192.168.75.110:8888/v1/AUTH_%(tenant_id)s' \
--adminurl 'http://192.168.75.110:8888/v1' \
--internalurl 'http://192.168.75.110:8888/v1/AUTH_%(tenant_id)s'

+-------------+--------------------------------------------------+
|   Property    |                      Value                       |
+-------------+--------------------------------------------------+
|   adminurl   |          http://192.168.75.110:8888/v1           |
|      id            |         5eb5295ee08d4967838f2b8f3fd44939         |
| internalurl   | http://192.168.75.110:8888/v1/AUTH_%(tenant_id)s |
|  publicurl     | http://192.168.75.110:8888/v1/AUTH_%(tenant_id)s |
|    region       |                    RegionOne                     |
|  service_id    |         b162fbd8a371465bba07b9c0ea3f9c32         |
+-------------+--------------------------------------------------+


8.
unset OS_SERVICE_TOKEN
unset OS_SERVICE_ENDPOINT

9.
keystone --os-auth-url=http://192.168.75.110:35357/v2.0 token-get

keystone --os-username=admin --os-password=secrete --os-auth-url=http://192.168.75.110:35357/v2.0 token-get

keystone --os-username=admin --os-password=secrete --os-tenant-name=demo --os-auth-url=http://192.168.75.110:35357/v2.0 token-get

keystone --os-username=admin --os-password=secrete --os-auth-url=http://192.168.75.110:35357/v2.0 token-get

keystone --os-username=admin --os-password=secrete --os-tenant-name=service  --os-auth-url=http://192.168.75.110:35357/v2.0 token-get

11.
vi keystonerc

export OS_USERNAME=swift
export OS_PASSWORD=swiftpass
export OS_TENANT_NAME=service
export OS_AUTH_URL=http://192.168.75.110:35357/v2.0
export OS_REGION_NAME=RegionOne
export OS_SERVICE_TOKEN=012345SECRET99TOKEN012345
export OS_SERVICE_ENDPOINT=http://192.168.75.110:35357/v2.0

export OS_USERNAME=admin
export OS_PASSWORD=secrete
export OS_TENANT_NAME=demo
export OS_AUTH_URL=http://192.168.75.110:35357/v2.0


source keystonerc

12.
keystone user-list
keystone role-list




-------------------------------------Server1, Server2, Server3, Server4----------------------------------------------------

1.安装SSH和Swift的核心包

sudo apt-get install swift openssh-server rsync memcached python-netifaces python-xattr python-memcache


2.在所有节点上创创建配置文件目录

sudo mkdir -p /etc/swift
sudo chown -R swift:swift /etc/swift/

3. 在所有节点上创创建swift配置文件(/etc/swift/swift.conf)
sudo vi /etc/swift/swift.conf

[swift-hash]
# random unique string that can never change (DO NOT LOSE)
swift_hash_path_suffix = fLIbertYgibbitZ

sudo chown -R swift:swift /etc/swift/

------------------------------------Server 2, Server 3, Server 4-----------------------------------------------------------

1.在所有存贮节点上安装Swift包

sudo apt-get install swift-account swift-container swift-object xfsprogs


2. 建立XFS文件系统存贮

sudo fdisk /dev/sdb        //#然后一次选择 n, p, 1, 默认, 默认, w

sudo mkfs.xfs -f -i size=1024 /dev/sdb1
(   命令格式:   sudo mkfs -t ext3 /dev/sdb1   )


sudo mkdir -p /srv/node/sdb1

sudo echo "/dev/sdb1 /srv/node/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0" >> /etc/fstab

sudo mount /srv/node/sdb1

sudo chown -R swift:swift /srv/node


3. 创建数据同步配置文件(/etc/rsyncd.conf)

sudo vi /etc/rsyncd.conf

uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = 192.168.4.2192.168.4.3192.168.4.4

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

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

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


4.启用系统同步
sudo vi /etc/default/rsync

RSYNC_ENABLE = true

sudo service rsync start

5.创建目录
sudo mkdir -p /var/swift/recon

sudo chown -R swift:swift /var/swift/recon


---------------------------------------------------Server 1----------------------------------------------------------

1.安装swift-proxy节点包

sudo apt-get install swift-proxy memcached python-keystoneclient python-swiftclient python-webob

2.生成SSL认证文件

cd /etc/swift
sudo openssl req -new -x509 -nodes -out cert.crt -keyout cert.key

3.修改缓存配置文件

sudo vi /etc/memcached.conf
将
-l 127.0.0.1 
改为
-l 192.168.4.1

4.重启缓存服务
sudo service memcached restart

5.修改swift-proxy缓存配置文件
sudo vi /etc/swift/proxy-server.conf

[DEFAULT]
cert_file = /etc/swift/cert.crt
key_file = /etc/swift/cert.key
bind_port = 8888
user = swift

[pipeline:main]
pipeline = healthcheck cache authtoken keystoneauth proxy-server

[app:proxy-server]
use = egg:swift#proxy
allow_account_management = true
account_autocreate = true

[filter:keystoneauth]
use = egg:swift#keystoneauth
operator_roles = Member,admin,swiftoperator

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory

# Delaying the auth decision is required to support token-less
# usage for anonymous referrers ('.r:*').
delay_auth_decision = true

# cache directory for signing certificate
signing_dir = /home/swift/keystone-signing

# auth_* settings refer to the Keystone server
auth_protocol = http
auth_host = 192.168.75.110
auth_port = 35357

# the same admin_token as provided in keystone.conf
admin_token = 012345SECRET99TOKEN012345

# the service tenant and swift userid and password created in Keystone
admin_tenant_name = service
admin_user = swift
admin_password = swiftpass

[filter:cache]
use = egg:swift#memcache
memcache_servers = 192.168.75.110:11211

[filter:catch_errors]
use = egg:swift#catch_errors

[filter:healthcheck]
use = egg:swift#healthcheck


6. 创建swift的认证目录

sudo mkdir -p /home/swift/keystone-signing
sudo chown -R swift:swift /home/swift/keystone-signing

7.创建account, container, object的ring

cd /etc/swift
sudo swift-ring-builder account.builder create 18 3 24
sudo swift-ring-builder container.builder create 18 3 24
sudo swift-ring-builder object.builder create 18 3 24

8. 将存贮实体加入到环中

sudo swift-ring-builder account.builder add z1-192.168.4.2:6002/sdb1 100
sudo swift-ring-builder container.builder add z1-192.168.4.2:6001/sdb1 100
sudo swift-ring-builder object.builder add z1-192.168.4.2:6000/sdb1 100

sudo swift-ring-builder account.builder add z2-192.168.4.3:6002/sdb1 100
sudo swift-ring-builder container.builder add z2-192.168.4.3:6001/sdb1 100
sudo swift-ring-builder object.builder add z2-192.168.4.3:6000/sdb1 100

sudo swift-ring-builder account.builder add z3-192.168.4.4:6002/sdb1 100
sudo swift-ring-builder container.builder add z3-192.168.4.4:6001/sdb1 100
sudo swift-ring-builder object.builder add z3-192.168.4.4:6000/sdb1 100

9. 查看各个环
sudo swift-ring-builder account.builder
sudo swift-ring-builder container.builder
sudo swift-ring-builder object.builder

10. 平衡各个环
sudo  swift-ring-builder account.builder rebalance
sudo  swift-ring-builder container.builder rebalance
sudo  swift-ring-builder object.builder rebalance

11. 将生成的环信息复制到Proxy节点与Storage节点的/etc/swift目录下
account.ring.gz
container.ring.gz
object.ring.gz

sudo chown -R swift:swift /etc/swift

sudo chmod g+rw,o+rw -R /etc/swift/

 sudo scp account.ring.gz zyx@192.168.75.111:/etc/swift
 sudo scp account.ring.gz zyx@192.168.75.112:/etc/swift
 sudo scp account.ring.gz zyx@192.168.75.113:/etc/swift

 sudo scp container.ring.gz zyx@192.168.75.111:/etc/swift
 sudo scp container.ring.gz zyx@192.168.75.112:/etc/swift
 sudo scp container.ring.gz zyx@192.168.75.113:/etc/swift

 sudo scp object.ring.gz zyx@192.168.75.111:/etc/swift
 sudo scp object.ring.gz zyx@192.168.75.112:/etc/swift
 sudo scp object.ring.gz zyx@192.168.75.113:/etc/swift

12. 将各个配置文件的用户改为swift

sudo chown -R swift:swift /etc/swift

13. 启动代理服务
sudo service proxy-server start
sudo swift-init proxy start (有效)



------------------------------------------Server 2, Server 3, Server 4-----------------------------------------------------------

14.启动存贮服务

sudo service swift-object start
sudo service swift-object-replicator start
sudo service swift-object-updater start
sudo service swift-object-auditor start
sudo service swift-container start
sudo service swift-container-replicator start
sudo service swift-container-updater start
sudo service swift-container-auditor start
sudo service swift-account start
sudo service swift-account-replicator start
sudo service swift-account-updater start
sudo service swift-account-auditor start

sudo swift-init all start (有效)
或

sudo swift-init object-server start
sudo swift-init object-replicator start
sudo swift-init object-updater start
sudo swift-init object-auditor start
sudo swift-init container-server start
sudo swift-init container-replicator start
sudo swift-init container-updater start
sudo swift-init container-auditor start
sudo swift-init account-server start
sudo swift-init account-replicator start
sudo swift-init account-auditor start

------------------------------------------Verify the Installation-------------------------------------------------------------
15.验证Swift安装
15.1设置变量
export ADMINPASS=swiftpass

export SWIFT_PROXY_CONF="/etc/swift/proxy-server.conf"

15.1验证
swift -V 2.0 -A http://192.168.75.110:5000/v2.0 -U service:swift -K swiftpass stat (有效)


curl -d '{"auth":{"tenantName": "service","passwordCredentials":{"username": "swift","password": "swiftpass"}}}' -H "Content-type:application/json" http://192.168.75.110:35357/v2.0/tokens  (有效)

{
    "access": {
        "token": {
            "issued_at": "2013-07-20T02:20:19.836225",
            "expires": "2013-07-21T02:20:19Z",
            "id": "MIIHHAYJ.....",
            "tenant": {
                "description": "Service Tenant",
                "enabled": true,
                "id": "5e3af2dac2d1451ba90c4f151a40a463",
                "name": "service"
            }
        },
        "serviceCatalog": [
            {
                "endpoints": [
                    {
                        "adminURL": "http://192.168.75.110:8888/v1",
                        "region": "RegionOne",
                        "internalURL": "http://192.168.75.110:8888/v1/AUTH_5e3af2dac2d1451ba90c4f151a40a463",
                        "id": "944b056c8ea44f4bb2f85f350fc6d749",
                        "publicURL": "http://192.168.75.110:8888/v1/AUTH_5e3af2dac2d1451ba90c4f151a40a463"
                    }
                ],
                "endpoints_links": [],
                "type": "object-store",
                "name": "swift"
            },
            {
                "endpoints": [
                    {
                        "adminURL": "http://192.168.75.110:8773/services/Admin",
                        "region": " 
                       
                    
                    

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[Swift]LeetCode1301. 最大得分的路径数目 | Number of Paths with Max Score ...发布时间:2022-07-13
下一篇:
Swift 性能探索和优化分析发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap