1. # 在部署对象存储服务(swift)之前,你的环境必须包含身份验证服务(keystone);
  2. # keystone需要MySQL数据库,Rabbitmq服务,Memcached服务;
  3. # 内存:4G
  4. # 系统:Ubuntu Server-14.04.5
  5. # 安装方法:http://www.jianshu.com/p/9e77b3ad930a
  6. # IP地址:192.168.10.55
  7. # 主机名:object

基本环境配置

配置主机静态IP地址

  1. vim /etc/network/interfaces
  1. auto lo
  2. iface lo inet loopback
  3. auto eth0
  4. # 将dhcp修改为static
  5. iface eth0 inet static
  6. # 静态IP地址
  7. address 192.168.10.55
  8. # 子网掩码
  9. netmask 255.255.255.0
  10. # 广播地址
  11. broadcast 192.168.10.255
  12. # 默认网关
  13. gateway 192.168.10.2
  14. # DNS服务器
  15. ## 谷歌DNS
  16. dns-nameservers 8.8.8.8
  17. ## 阿里DNS
  18. dns-nameservers 223.5.5.5

重启网卡

  1. # 关闭网卡
  2. ifdown eth0
  3. # 开启网卡
  4. ifup eth0

配置主机名

  1. vim /etc/hostname
  1. # 对于不同的节点,请做出相应的修改
  2. # 清空文件内容
  3. # 主机名
  4. object

配置主机名解析

  1. vim /etc/hosts
  1. # 文件内容,请视实际情况做相应的修改
  2. 192.168.10.55 object

验证操作

  1. ping -c 4 主机名
  2. # 例如
  3. ping -c 4 object

配置Ubuntu更新源

  1. vim /etc/apt/sources.list
  1. # 请先把文件内容清空
  2. # 任选一组源
  3. # 中国科学技术大学源
  4. deb http://mirrors.ustc.edu.cn/ubuntu/ trusty main restricted universe multiverse
  5. deb http://mirrors.ustc.edu.cn/ubuntu/ trusty-security main restricted universe multiverse
  6. deb http://mirrors.ustc.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse
  7. deb http://mirrors.ustc.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse
  8. deb http://mirrors.ustc.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse
  9. deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty main restricted universe multiverse
  10. deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty-security main restricted universe multiverse
  11. deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse
  12. deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse
  13. deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse
  14. # 阿里云的Ubuntu-14.04源
  15. deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
  16. deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
  17. deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
  18. deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
  19. deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
  20. deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
  21. deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
  22. deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
  23. deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
  24. deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

更新系统

  1. apt-get update && apt-get dist-upgrade

添加OpenStack库

  1. apt-get install software-properties-common
  2. # 此处命令行会停顿,请按Enter键继续
  3. add-apt-repository cloud-archive:mitaka

安装OpenStack客户端

  1. apt-get install python-openstackclient

更新系统

  1. # 此处为必需步骤
  2. apt-get update && apt-get dist-upgrade

重启主机

  1. shutdown -r now
  2. # 重启电脑后,XShell要用新的IP地址连接虚拟机
  3. # XShell的使用方法:http://www.jianshu.com/p/ada93cba0acd

MySQL服务

安装软件包

  1. # 此处会提示用户设置数据库密码
  2. apt-get install mariadb-server python-pymysql

配置openstack.cnf

  1. vim /etc/mysql/conf.d/openstack.cnf
  1. [mysqld]
  2. # object节点的IP
  3. bind-address = 192.168.10.55
  4. default-storage-engine = innodb
  5. innodb_file_per_table
  6. max_connections = 4096
  7. collation-server = utf8_general_ci
  8. character-set-server = utf8

重启mysql服务

  1. service mysql restart

mysql安全初始化

  1. # 提示输入密码,问题推荐输入n、y、y、y、y
  2. mysql_secure_installation

Rabbitmq服务

安装软件包

  1. apt-get install rabbitmq-server

添加OpenStack用户

  1. # 此处密码为0901
  2. rabbitmqctl add_user openstack 0901

为OpenStack用户添加读、写及访问权限

  1. rabbitmqctl set_permissions openstack ".*" ".*" ".*"

Memcached服务

安装软件包

  1. apt-get install memcached python-memcache

配置memcached.conf

  1. vim /etc/memcached.conf
  1. # object的IP地址
  2. -l 192.168.10.55

重启服务

  1. service memcached restart

keystone的安装

进入数据库

  1. # 提示输入数据库密码
  2. mysql -u root -p

创建keystone数据库

  1. CREATE DATABASE keystone;

赋予keystone相关权限

  1. # 根据实际情况修改密码
  2. GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '0901';
  3. GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '0901';

退出数据库

  1. exit

生成随机值作为临时令牌(token)

  1. # token:0c7030a400cf77890c75
  2. # token值要与后文统一
  3. openssl rand -hex 10

禁用keystone在安装完成后自启

  1. echo "manual" > /etc/init/keystone.override

安装软件包

  1. apt-get install keystone apache2 libapache2-mod-wsgi

配置keystone.conf

  1. vim /etc/keystone/keystone.conf
  1. [DEFAULT]
  2. # token:0c7030a400cf77890c75
  3. # token值要与后文统一
  4. admin_token = 0c7030a400cf77890c75
  5. [database]
  6. # 注释掉原connection
  7. # 根据实际情况修改密码
  8. connection = mysql+pymysql://keystone:0901@object/keystone
  9. # 在第1987行
  10. [token]
  11. provider = fernet

同步keystone数据库

  1. su -s /bin/sh -c "keystone-manage db_sync" keystone

初始化Fernet键

  1. keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

配置apache2.conf

  1. vim /etc/apache2/apache2.conf
  1. # 在文件前面添加该项
  2. ServerName object

新建并配置wsgi-keystone.conf

  1. vim /etc/apache2/sites-available/wsgi-keystone.conf
  1. Listen 5000
  2. Listen 35357
  3. <VirtualHost *:5000>
  4. WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
  5. WSGIProcessGroup keystone-public
  6. WSGIScriptAlias / /usr/bin/keystone-wsgi-public
  7. WSGIApplicationGroup %{GLOBAL}
  8. WSGIPassAuthorization On
  9. ErrorLogFormat "%{cu}t %M"
  10. ErrorLog /var/log/apache2/keystone.log
  11. CustomLog /var/log/apache2/keystone_access.log combined
  12. <Directory /usr/bin>
  13. Require all granted
  14. </Directory>
  15. </VirtualHost>
  16. <VirtualHost *:35357>
  17. WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
  18. WSGIProcessGroup keystone-admin
  19. WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
  20. WSGIApplicationGroup %{GLOBAL}
  21. WSGIPassAuthorization On
  22. ErrorLogFormat "%{cu}t %M"
  23. ErrorLog /var/log/apache2/keystone.log
  24. CustomLog /var/log/apache2/keystone_access.log combined
  25. <Directory /usr/bin>
  26. Require all granted
  27. </Directory>
  28. </VirtualHost>

使apache支持虚拟机的身份认证服务

  1. ln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled

重启appache服务

  1. service apache2 restart

删除SQLite数据库文件

  1. rm -f /var/lib/keystone/keystone.db

配置身份验证令牌

  1. # token值要与前文统一
  2. export OS_TOKEN=0c7030a400cf77890c75

配置Endpoint的URL

  1. export OS_URL=http://object:35357/v3

配置API版本

  1. export OS_IDENTITY_API_VERSION=3

创建identity服务实体

  1. # 执行结果为表格
  2. openstack service create --name keystone --description "OpenStack Identity" identity

创建identity服务endpoint

  1. # 执行结果为表格
  2. openstack endpoint create --region RegionOne identity public http://object:5000/v3
  3. openstack endpoint create --region RegionOne identity internal http://object:5000/v3
  4. openstack endpoint create --region RegionOne identity admin http://object:35357/v3

创建一个默认的domain

  1. # 执行结果为表格
  2. openstack domain create --description "Default Domain" default

创建一个admin project

  1. # 执行结果为表格
  2. openstack project create --domain default --description "Admin Project" admin

创建一个admin user

  1. # 此处会提示用户设置用户密码
  2. # 执行结果为表格
  3. openstack user create --domain default --password-prompt admin

创建一个admin role

  1. # 执行结果为表格
  2. openstack role create admin

将role添加到admin project和admin user里面去

  1. # 此处无输出则执行正确
  2. openstack role add --project admin --user admin admin

创建一个service project

  1. # 执行结果为表格
  2. openstack project create --domain default --description "Service Project" service

配置keystone-paste.ini

  1. vim /etc/keystone/keystone-paste.ini
  1. # 分别从[pipeline:public_api]、[pipeline:admin_api] and [pipeline:api_v3] 移除 admin_token_auth

移除临时token

  1. unset OS_TOKEN OS_URL

作为admin管理员请求一个身份验证令牌

  1. # 提示输入admin的密码
  2. # 执行结果为表格
  3. openstack --os-auth-url http://object:35357/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name admin --os-username admin token issue

简化操作

  1. # 将环境变量写入配置文件
  2. # 简化每次重启主机后需加载脚本的操作
  3. # 直接在命令行执行以下命令,再遇到需要加载脚本时就不需要执行了
  4. echo "export OS_PROJECT_DOMAIN_NAME=default" >> /etc/profile
  5. echo "export OS_USER_DOMAIN_NAME=default" >> /etc/profile
  6. echo "export OS_PROJECT_NAME=admin" >> /etc/profile
  7. echo "export OS_USERNAME=admin" >> /etc/profile
  8. # 注意修改密码
  9. echo "export OS_PASSWORD=0901" >> /etc/profile
  10. echo "export OS_AUTH_URL=http://object:35357/v3" >> /etc/profile
  11. echo "export OS_IDENTITY_API_VERSION=3" >> /etc/profile
  12. echo "export OS_IMAGE_API_VERSION=2" >> /etc/profile

重新加载配置文件

  1. source /etc/profile

请求获取令牌

  1. openstack token issue

Swift单节点安装

创建swift用户

  1. # 此处会提示用户设置用户密码
  2. # 执行结果为表格
  3. openstack user create --domain default --password-prompt swift

将admin role添加到swift user

  1. # 此处无输出则正确
  2. openstack role add --project service --user swift admin

创建Object Storage服务实体

  1. # 执行结果为表格
  2. openstack service create --name swift --description "OpenStack Object Storage" object-store

创建Object Storage服务endpoint

  1. openstack endpoint create --region RegionOne object-store public http://object:8080/v1/AUTH_%\(tenant_id\)s
  2. openstack endpoint create --region RegionOne object-store internal http://object:8080/v1/AUTH_%\(tenant_id\)s
  3. openstack endpoint create --region RegionOne object-store admin http://object:8080/v1

安装软件包

  1. apt-get install swift swift-proxy python-swiftclient python-keystoneclient python-keystonemiddleware memcached

创建swift目录

  1. mkdir -p /etc/swift

从对象存储源仓库中获取代理服务配置文件

  1. # 耐心等待,可能获取失败
  2. curl -o /etc/swift/proxy-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/proxy-server.conf-sample?h=stable/mitaka

配置proxy-server.conf

  1. vim /etc/swift/proxy-server.conf
  1. [DEFAULT]
  2. bind_port = 8080
  3. user = swift
  4. swift_dir = /etc/swift
  5. # 从[pipeline:main]中移除tempurl和tempauth,添加authtoken和keystoneauth,请不要改变模块的顺序;
  6. [pipeline:main]
  7. pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk ratelimit authtoken keystoneauth container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server
  8. [app:proxy-server]
  9. use = egg:swift#proxy
  10. account_autocreate = True
  11. # 配置文件中有,但被注释掉了,直接添加即可
  12. [filter:keystoneauth]
  13. use = egg:swift#keystoneauth
  14. operator_roles = admin,user
  15. # 配置文件中有,但被注释掉了,直接添加即可
  16. [filter:authtoken]
  17. paste.filter_factory = keystonemiddleware.auth_token:filter_factory
  18. auth_uri = http://object:5000
  19. auth_url = http://object:35357
  20. memcached_servers = object:11211
  21. auth_type = password
  22. project_domain_name = default
  23. user_domain_name = default
  24. project_name = service
  25. username = swift
  26. password = 0901
  27. delay_auth_decision = True
  28. [filter:cache]
  29. use = egg:swift#memcache
  30. memcache_servers = object:11211

磁盘模拟存储节点

  1. # 模拟两个存储节点,每个节点2个空磁盘
  2. # 关闭虚拟机,为我们的虚拟机添加4个10G的空磁盘;
  3. # 虚拟机磁盘名称:sda(系统区)、sdb、sdc、sdd、sde;
  4. # 验证检查,查看是否有以上磁盘;
  5. ls /dev/sd*

步骤1

步骤2

步骤3

步骤4

步骤5

步骤6

步骤7

安装软件包

  1. apt-get install xfsprogs rsync

格式化空磁盘

  1. mkfs.xfs /dev/sdb
  2. mkfs.xfs /dev/sdc
  3. mkfs.xfs /dev/sdd
  4. mkfs.xfs /dev/sde

创建挂载点目录结构

  1. mkdir -p /srv/node/sdb
  2. mkdir -p /srv/node/sdc
  3. mkdir -p /srv/node/sdd
  4. mkdir -p /srv/node/sde

配置fstab(自动挂载)

  1. vim /etc/fstab
  1. # 以下内容追加到配置文件
  2. /dev/sdb /srv/node/sdb xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
  3. /dev/sdc /srv/node/sdc xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
  4. /dev/sdd /srv/node/sdd xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
  5. /dev/sde /srv/node/sde xfs noatime,nodiratime,nobarrier,logbufs=8 0 2

挂载设备

  1. mount /srv/node/sdb
  2. mount /srv/node/sdc
  3. mount /srv/node/sdd
  4. mount /srv/node/sde

配置rsyncd.conf

  1. vim /etc/rsyncd.conf
  1. uid = swift
  2. gid = swift
  3. log file = /var/log/rsyncd.log
  4. pid file = /var/run/rsyncd.pid
  5. # 本机 IP 地址
  6. address = 192.168.10.55
  7. [account]
  8. max connections = 2
  9. path = /srv/node/
  10. read only = False
  11. lock file = /var/lock/account.lock
  12. [container]
  13. max connections = 2
  14. path = /srv/node/
  15. read only = False
  16. lock file = /var/lock/container.lock
  17. [object]
  18. max connections = 2
  19. path = /srv/node/
  20. read only = False
  21. lock file = /var/lock/object.lock

配置开启rsync服务

  1. vim /etc/default/rsync
  1. RSYNC_ENABLE=true

启动rsyns服务

  1. service rsync start

安装软件包

  1. apt-get install swift swift-account swift-container swift-object

获取配置文件

  1. # 耐心等待,可能获取失败
  2. curl -o /etc/swift/account-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/account-server.conf-sample?h=stable/mitaka
  3. curl -o /etc/swift/container-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/container-server.conf-sample?h=stable/mitaka
  4. curl -o /etc/swift/object-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/object-server.conf-sample?h=stable/mitaka

配置account-server.conf

  1. vim /etc/swift/account-server.conf
  1. [DEFAULT]
  2. # 本机 IP 地址
  3. bind_ip = 192.168.10.55
  4. bind_port = 6002
  5. user = swift
  6. swift_dir = /etc/swift
  7. devices = /srv/node
  8. mount_check = True
  9. [pipeline:main]
  10. pipeline = healthcheck recon account-server
  11. [filter:recon]
  12. use = egg:swift#recon
  13. recon_cache_path = /var/cache/swift

配置container-server.conf

  1. vim /etc/swift/container-server.conf
  1. [DEFAULT]
  2. # 本机 IP 地址
  3. bind_ip = 192.168.10.55
  4. bind_port = 6001
  5. user = swift
  6. swift_dir = /etc/swift
  7. devices = /srv/node
  8. mount_check = True
  9. [pipeline:main]
  10. pipeline = healthcheck recon container-server
  11. [filter:recon]
  12. use = egg:swift#recon
  13. recon_cache_path = /var/cache/swift

配置object-server.conf

  1. vim /etc/swift/object-server.conf
  1. [DEFAULT]
  2. # 本机 IP 地址
  3. bind_ip = 192.168.10.55
  4. bind_port = 6000
  5. user = swift
  6. swift_dir = /etc/swift
  7. devices = /srv/node
  8. mount_check = True
  9. [pipeline:main]
  10. pipeline = healthcheck recon object-server
  11. [filter:recon]
  12. use = egg:swift#recon
  13. recon_cache_path = /var/cache/swift
  14. recon_lock_path = /var/lock

修改挂载点的权限

  1. chown -R swift:swift /srv/node

创建recon目录并设置权限

  1. mkdir -p /var/cache/swift
  2. chown -R root:swift /var/cache/swift
  3. chmod -R 775 /var/cache/swift

创建并分配初始化环(rings)

切换到swift目录

  1. cd /etc/swift

创建account.builder文件

  1. # 此处无输出则正确
  2. swift-ring-builder account.builder create 10 3 1

将每个存储节点添加到环(ring)中

  1. swift-ring-builder account.builder add --region 1 --zone 1 --ip 192.168.10.55 --port 6002 --device sdb --weight 100
  2. swift-ring-builder account.builder add --region 1 --zone 1 --ip 192.168.10.55 --port 6002 --device sdc --weight 100
  3. swift-ring-builder account.builder add --region 1 --zone 2 --ip 192.168.10.55 --port 6002 --device sdd --weight 100
  4. swift-ring-builder account.builder add --region 1 --zone 2 --ip 192.168.10.55 --port 6002 --device sde --weight 100

验证操作

  1. swift-ring-builder account.builder

平衡环

  1. swift-ring-builder account.builder rebalance

切换到swift目录

  1. cd /etc/swift

创建container.builder文件

  1. # 此处无输出则正确
  2. swift-ring-builder container.builder create 10 3 1

将每个存储节点添加到环(ring)中

  1. swift-ring-builder container.builder add --region 1 --zone 1 --ip 192.168.10.55 --port 6001 --device sdb --weight 100
  2. swift-ring-builder container.builder add --region 1 --zone 1 --ip 192.168.10.55 --port 6001 --device sdc --weight 100
  3. swift-ring-builder container.builder add --region 1 --zone 2 --ip 192.168.10.55 --port 6001 --device sdd --weight 100
  4. swift-ring-builder container.builder add --region 1 --zone 2 --ip 192.168.10.55 --port 6001 --device sde --weight 100

验证操作

  1. swift-ring-builder container.builder

平衡环

  1. swift-ring-builder container.builder rebalance

切换到swift目录

  1. cd /etc/swift

创建object.builder文件

  1. # 此处无输出则正确
  2. swift-ring-builder object.builder create 10 3 1

将每个存储节点添加到环(ring)中

  1. swift-ring-builder object.builder add --region 1 --zone 1 --ip 192.168.10.55 --port 6000 --device sdb --weight 100
  2. swift-ring-builder object.builder add --region 1 --zone 1 --ip 192.168.10.55 --port 6000 --device sdc --weight 100
  3. swift-ring-builder object.builder add --region 1 --zone 2 --ip 192.168.10.55 --port 6000 --device sdd --weight 100
  4. swift-ring-builder object.builder add --region 1 --zone 2 --ip 192.168.10.55 --port 6000 --device sde --weight 100

验证操作

  1. swift-ring-builder object.builder

平衡环

  1. swift-ring-builder object.builder rebalance

从源仓库获取swift.conf

  1. # 耐心等待,可能获取失败
  2. curl -o /etc/swift/swift.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/swift.conf-sample?h=stable/mitaka

配置swift.conf

  1. vim /etc/swift/swift.conf
  1. [swift-hash]
  2. # suffix与prefix自定义
  3. swift_hash_path_suffix = Ben
  4. swift_hash_path_prefix = Ben
  5. [storage-policy:0]
  6. name = Policy-0
  7. default = yes

设置权限

  1. chown -R root:swift /etc/swift

重启服务

  1. service memcached restart
  2. service swift-proxy restart
  3. swift-init all start

查看swift状态

  1. swift stat

创建容器Ben

  1. openstack container create Ben

上传测试文件到容器Ben

  1. # 文件需要我们自行去创建
  2. # 注意 FILENAME 的修改
  3. openstack object create Ben FILENAME

列出容器 Ben 存储的FILES

  1. openstack object list Ben

下载容器Ben存储的FILENAME

  1. # 此处无输出则正确
  2. openstack object save Ben FILENAME

swift(Object Storage对象存储服务)(单节点)的更多相关文章

  1. 九、Swift对象存储服务(双节点搭建)

    九.Swift对象存储服务(双节点搭建) 要求:Controoler节点需要2块空盘 Compute节点需要再加2块空盘 本次搭建采用Controller 和 Compute双节点节点做swift组件 ...

  2. 对象存储服务(Object Storage Service,简称 OSS)

    阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量.安全.低成本.高可靠的云存储服务.它具有与平台无关的RESTful API接口,能够提供99.99 ...

  3. openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一

    openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一 openstack-r版(rocky)搭建基于centos7.4 的openstac ...

  4. openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 三

    openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一 openstack-r版(rocky)搭建基于centos7.4 的openstac ...

  5. openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 二

    openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一 openstack-r版(rocky)搭建基于centos7.4 的openstac ...

  6. openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 四

    openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一 openstack-r版(rocky)搭建基于centos7.4 的openstac ...

  7. 对象存储服务-Minio

    Mino 目录 Mino 对象存储服务 Minio 参考 Minio 架构 为什么要用 Minio 存储机制 纠删码 MinIO概念 部署 单机部署: Docker 部署Minio 分布式Minio ...

  8. 使用 HDFS 协议访问对象存储服务

    背景介绍 原生对象存储服务的索引是扁平化的组织形式,在传统文件语义下的 List 和 Rename 操作性能表现上存在短板.腾讯云对象存储服务 COS 通过元数据加速功能,为上层计算业务提供了等效于 ...

  9. 阿里云对象存储服务,OSS使用经验总结,图片存储,分页查询

    阿里云OSS-使用经验总结,存储,账号-权限,分页,缩略图,账号切换 最近项目中,需要使用云存储,最后选择了阿里云-对象存储服务OSS.总的来说,比较简单,但是仍然遇到了几个问题,需要总结下. 1.O ...

随机推荐

  1. 【Hive】建表

    1.建表 Create [EXTERNAL] TABLE [IF NOT EXISTS] table_name ( [(col_name data_type [COMMENT col_comment] ...

  2. Myeclipse快捷键的设置以及默认的编码格式

    设置默认的编码格式

  3. 转载 IO、文件、NIO【草案四】

    本章目录: 1.IO类相关内容 2.文件和目录 3.文件高级操作  NIO详解[1]——缓冲区(Buffer)[深入理解,总结自<Java-NIO>]: [*:下边的Buffer又指代抽象 ...

  4. NSSet基本使用

    int main(int argc, const char * argv[]) { @autoreleasepool { //创建一个集合对象 注:如果集合中写了两次或多次同一个对象 打印只能看到一个 ...

  5. 原创:Scala学习笔记(不断更新)

    Scala是一种函数式语言和面向对象语言结合的新语言,本笔记中就零散记下学习scala的一些心得,主要侧重函数式编程方面. 1. 以递归为核心控制结构. 实现循环处理的方式有三种:goto,for/w ...

  6. New Concept English three (26)

    34w/m 54words No one can avoid being influenced by advertisements. Much as we may pride ourselves on ...

  7. velocity与map

    1. 遍历map map<String, Object> mapData = new HashMap<String, Object>(); mapData.put(" ...

  8. (三)js循环结构

    1.循环结构 a)    当循环 语法:while(condition){         code...     }     do(){         code...     } while(); ...

  9. PHPCMS V9调用父栏目 顶级父栏目的代码

    一.调用父栏目 首先是列表页和二级栏目页list.html {$CATEGORYS[$top_parentid][catname]} //顶级父栏目名称 {$CATEGORYS[$CAT[parent ...

  10. Sublimetext3的下载与安装

    https://www.sublimetext.com/ Sublimetext价格不菲,但是作者允许无限期的免费试用,请不要下载破解版 使用国内汉化版的很有可能感染病毒,请善待电脑 百度搜索找到官网 ...