OpenStack:Swift组件的运维(mitaka版本)

来自CloudWiki
跳转至: 导航搜索


基础准备

检查现有磁盘

[root@controller ~]# fdisk -l

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0xca98b9ab

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    25167871     2097152   83  Linux

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: 0x00070c58

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   195348479    97673216   8e  Linux LVM


</nowiki>

硬盘分区

下面这块硬盘进行分区 ,记录分区的名字

[root@controller ~]# fdisk /dev/sdb

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.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x157e7f05.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 3): 3
First sector (2048-41943039, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +2G
Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): W
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

查看新的硬盘分区:/dev/sdb3

[root@controller ~]# lsblk

NAME                                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                            8:0    0  100G  0 disk
└─sda1                                         8:1    0 93.2G  0 part
  ├─centos-root                              253:0    0 55.9G  0 lvm  /
  ├─centos-swap                              253:1    0 18.6G  0 lvm  [SWAP]
  └─centos-home                              253:2    0 18.6G  0 lvm  /home
sdb                                            8:16   0   20G  0 disk
├─sdb1                                         8:17   0   10G  0 part
│ ├─cinder--volumes-volume--39aa5d70--6185--40b9--bac0--847d6f9fc016
                                             253:3    0    1G  0 lvm
│ ├─cinder--volumes-volume--8fbd9360--ff27--47c0--afd1--db129f323206
                                             253:4    0    1G  0 lvm
│ └─cinder--volumes-volume--5ddf7d53--9664--42b0--8fb1--f0028b6b6d05
                                             253:5    0    2G  0 lvm
├─sdb2                                         8:18   0    2G  0 part
└─sdb3                                         8:19   0    2G  0 part
sr0                                           11:0    1 1024M  0 rom
sr1                                           11:1    1 1024M  0 rom


参考文档:Linux 磁盘管理

注意:重启之后,需要重新配一下挂载源,具体可参考:OpenStack环境设计和系统准备

修改配置文件

[root@controller ~]# cd /etc/xiandian

[root@controller xiandian]# ls

openrc.sh

[root@controller xiandian]# vi openrc.sh

##--------------------Swift Config---------------------##
##Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000

##The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sdb3
#刚添加的分区的名称
##The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=10.0.0.11  
#计算或存储节点IP

安装SWIFT

[root@controller xiandian]# cd /usr/local/bin

控制节点:

[root@controller bin]# source /etc/keystone/admin-openrc.sh

[root@controller bin]# iaas-install-swift-controller.sh

计算节点:

执行脚本iaas-install-swift-compute.sh进行安装

执行过程中需要确认登录controller节点和输入controller节点root用户密码。

启动Swift

[root@controller swift]# source /etc/keystone/admin-openrc.sh

[root@controller swift]# swift-init all restart


[root@controller swift]# swift stat

Account: AUTH_a06028e9f8e348d3b7a494a9d5cb0ee6
     Containers: 0
        Objects: 0
          Bytes: 0
X-Put-Timestamp: 1556349822.96296
    X-Timestamp: 1556349822.96296
     X-Trans-Id: tx6f9d41fbd01840fe8bf63-005cc4037e
   Content-Type: text/plain; charset=utf-8
You have new mail in /var/spool/mail/root

Swift账号操作

查看当前账户

[root@controller swift]# swift stat

Account: AUTH_a06028e9f8e348d3b7a494a9d5cb0ee6
     Containers: 0
        Objects: 0
          Bytes: 0
X-Put-Timestamp: 1556349822.96296
    X-Timestamp: 1556349822.96296
     X-Trans-Id: tx6f9d41fbd01840fe8bf63-005cc4037e
   Content-Type: text/plain; charset=utf-8
You have new mail in /var/spool/mail/root

Swift容器操作

创建容器

通过命令行实现对swift上数据的操作,首先需要创建一个名称为 ”xiandian”的容器

[root@controller bin]# openstack container create container02

  +-------------------------------+-------------+--------------------------------+
| account                       | container   | x-trans-id                     |
+-------------------------------+-------------+--------------------------------+
| AUTH_a06028e9f8e348d3b7a494a9 | container02 | txae33a419f9bc4d19830d4-005cc5 |
| d5cb0ee6                      |             | d3ba                           |
+-------------------------------+-------------+--------------------------------+

列出所有容器

[root@controller ~]# openstack container list

+-------------+
| Name        |
+-------------+
| container01 |
| container02 |
| maxin       |
| xiandain    |
| xiandian    |

获取容器元数据

[root@controller ~]# openstack container show container02

 +--------------+---------------------------------------+
| Field        | Value                                 |
+--------------+---------------------------------------+
| account      | AUTH_a06028e9f8e348d3b7a494a9d5cb0ee6 |
| bytes_used   | 0                                     |
| container    | container02                           |
| object_count | 0                                     |

删除容器

[root@controller ~]# openstack container delete container02


Swift对象操作

上传文件

[root@controller bin]# touch file01

[root@controller bin]# openstack object create container02 file01

+--------+-------------+----------------------------------+
| object | container   | etag                             |
+--------+-------------+----------------------------------+
| file01 | container01 | d41d8cd98f00b204e9800998ecf8427e |
+--------+-------------+----------------------------------+

上传之后,就可以在container02这个容器中找到文件:

[root@controller ~]# openstack object list container02

+--------+
| Name   |
+--------+
| file01 |

</nowiki>

下载文件

[root@controller bin]# cd /mnt

[root@controller mnt]# ls

centos  iaas

[root@controller mnt]# openstack object save container02 file01

[root@controller mnt]# ls

centos  file01  iaas


查看容器内的对象

[root@controller bin]# openstack object list container02

+--------+
| Name   |
+--------+
| file01 |

批量上传文件

[root@controller ~]# mkdir test

[root@controller ~]# cd test

[root@controller test]# touch 1.txt 2.txt

[root@controller test]# openstack object create container02 *.txt

+--------+-------------+----------------------------------+
| object | container   | etag                             |
+--------+-------------+----------------------------------+
| 1.txt  | container02 | d41d8cd98f00b204e9800998ecf8427e |
| 2.txt  | container02 | d41d8cd98f00b204e9800998ecf8427e |
+--------+-------------+----------------------------------+



参考文档:

[1] https://blog.51cto.com/ucweb/1904357 [2] https://blog.51cto.com/ucweb/1904357