16.部署swift服務|swift配置存儲和ring

每個服務都需要做的如下:

配置服務的時候,步驟如下:

  1. 創建服務同名的用戶(除了keystone),添加到services這個project和admin這個role
  2. 創建services和endpoint
  3. 修改配置文件:需要指定keystone和rabbitmq的地址
  4. 更新數據庫(除了swift)

 

swift是用不到上面的數據庫的。

 

安裝swift軟件包

 

 

Memcached 是一個高性能的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。

 

 

 

創建服務同名用戶:

# openstack user create swift --password redhat

添加swift用戶admin權限:

# openstack role add --user swift --project services admin

 

創建服務:

# openstack service create --name swift object-store

 

創建endpoint:

openstack endpoint create --region RegionOne --publicurl 'http://192.168.179.140:8080/v1/AUTH_%(tenant_id)s' --internalurl 'http://192.168.179.140:8080/v1/AUTH_%(tenant_id)s' --adminurl 'http://192.168.179.140:8080'  32103224f7054cb1a75e57f80c7037d5

 

修改配置文件:

/etc/swift/

 

配置的服務:

服務介紹:

代理服務器 proxy server

負責swift各個組件之間的通信

接收用戶的請求

存儲服務器:

容器服務

對象服務

賬戶服務

一致性服務:

auditor  定期檢查zone1和zone2 之間數據有沒有問題,是否損壞

replicate 複製,修復數據

update    如果修復沒有成功,就會等一段時間再次修復,這個功能是由update來完成的

 

修改配置文件:

 

 

 

 

 

 

 

隨機生成一個值

 

準備底層磁盤:

[root@osp3 ~]# lsblk

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda      8:0    0  100G  0 disk

©À©¤sda1   8:1    0   60G  0 part /

©¸©¤sda2   8:2    0    4G  0 part [SWAP]

sr0     11:0    1  3.8G  0 rom  /iso

[root@osp3 ~]# fdisk /dev/sda

Welcome to fdisk (util-linux 2.23.2).

 

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

 

 

Command (m for help): p

 

Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x00062bf0

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *        2048   125831167    62914560   83  Linux

/dev/sda2       125831168   134219775     4194304   82  Linux swap / Solaris

 

Command (m for help): n

Partition type:

   p   primary (2 primary, 0 extended, 2 free)

   e   extended

Select (default p): p

Partition number (3,4, default 3):

First sector (134219776-209715199, default 134219776):

Using default value 134219776

Last sector, +sectors or +size{K,M,G} (134219776-209715199, default 209715199): +15G

Partition 3 of type Linux and of size 15 GiB is set

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

 

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

[root@osp3 ~]# partprobe

Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.

Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.

Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.

[root@osp3 ~]#

 

 

創建邏輯卷:

[root@osp3 ~]# pvs

[root@osp3 ~]# pvcreate /dev/sda3

  Physical volume "/dev/sda3" successfully created

[root@osp3 ~]# vgcreate vg0 /dev/sda3

  Volume group "vg0" successfully created

[root@osp3 ~]# pvs

  PV         VG   Fmt  Attr PSize  PFree

  /dev/sda3  vg0  lvm2 a--  15.00g 15.00g

[root@osp3 ~]# vgs

  VG   #PV #LV #SN Attr   VSize  VFree

  vg0    1   0   0 wz--n- 15.00g 15.00g

[root@osp3 ~]# lvs

[root@osp3 ~]# lvcreate -L 2G -n lv1 vg0

  Logical volume "lv1" created.

[root@osp3 ~]# lvcreate -L 2G -n lv2 vg0

  Logical volume "lv2" created.

[root@osp3 ~]# lvcreate -L 2G -n lv3 vg0

  Logical volume "lv3" created.

[root@osp3 ~]# mkfs.xfs /dev/vg0/lv1

meta-data=/dev/vg0/lv1           isize=256    agcount=4, agsize=131072 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=0        finobt=0

data     =                       bsize=4096   blocks=524288, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal log           bsize=4096   blocks=2560, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@osp3 ~]# mkfs.xfs /dev/vg0/lv2

meta-data=/dev/vg0/lv2           isize=256    agcount=4, agsize=131072 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=0        finobt=0

data     =                       bsize=4096   blocks=524288, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal log           bsize=4096   blocks=2560, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@osp3 ~]# mkfs.xfs /dev/vg0/lv3

meta-data=/dev/vg0/lv3           isize=256    agcount=4, agsize=131072 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=0        finobt=0

data     =                       bsize=4096   blocks=524288, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal log           bsize=4096   blocks=2560, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

 

掛載點必須在下面的目錄中:/srv/node

 

 

 

 

修改存儲的所屬權限爲swift:

 

創建ring:

/etc/swift下創建後綴爲.builder的ring文件

# swift-ring-builder account.builder create 12 2 1

# swift-ring-builder container.builder create 12 2 1

# swift-ring-builder object.builder create 12 2 1

12:  2的12次冪

2表示副本數

1表示間隔,當ring創建好了以後,如果想要rebalance  1個小時候才能做

 

 

下面開始配置指定每個ring到底如何使用zone:

# swift-ring-builder object.builder add z1-192.168.179.140:6200/z1 100      #/srv/node/z1

# swift-ring-builder object.builder add z1-192.168.179.140:6200/z1 100

# swift-ring-builder object.builder add z2-192.168.179.140:6200/z2 100

# swift-ring-builder account.builder add z1-192.168.179.140:6202/z1 100

# swift-ring-builder account.builder add z2-192.168.179.140:6202/z2 100

# swift-ring-builder container.builder add z1-192.168.179.140:6201/z1 100

# swift-ring-builder container.builder add z2-192.168.179.140:6201/z2 100

100表示權重, 可以不指定即默認

 

分配vnode 到zone中:rebalance

 

swift-ring-builder account.builder rebalance

swift-ring-builder container.builder rebalance

swift-ring-builder object.builder rebalance

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章