Skip to content

Latest commit

 

History

History
235 lines (167 loc) · 10.1 KB

README.zh_cn.md

File metadata and controls

235 lines (167 loc) · 10.1 KB

介绍

对象存储入门实践。

基本概念

网络存储工业协会 SNIA 对象存储入门:

网络存储工业协会 Storage Networking Industry Association (SNIA) 是由来自于全球存储市场的众多企业组建的全球性非盈利组织。

实验一:系统搭建

基础环境

代码管理和仓库

Git tutorial https://github.com/cs-course/git-tutorial

替代方案: 码云, bitbucket, gitlab

Python怎么搞定

  • 发行版
  • 用容器快速部署 (可选)
    • 选项 3: Python Docker https://github.com/cs-course/python-lab
      • dockerhub (docker大本营) docker pull zhan2016/python-lab:3.6.0
      • daocloud (国内平台) docker login daocloud.io && docker pull daocloud.io/zhan2016/python-lab:master-31a932d

Java怎么搞定

同学期课程: Java语言程序设计, 2019-2020 第2学期

一些安装辅助脚本 https://github.com/ShiZhan/java-bundle (给喜欢自己琢磨的同学参考)

Go怎么搞定

Rust怎么搞定

怎么在Windows或者MacOS里面跑Linux (可选)

目的: 计划无伤尝试 mock-s3 或 s3proxy

工具: Virtualbox, VMWare ...

直奔图形界面,或者参考 Vagrant tutorial https://github.com/cs-course/vagrant-tutorial

docker容器怎么搞定 (可选)

目的: 计划尝试 Openstack Swift 或 Ceph

使用容器简化部署,容器使用可参考 Docker tutorial https://github.com/cs-course/docker-tutorial

服务端

除初学用 选项1 之外,选项2,3 也提供免编译执行程序下载。

客户端

选项 1 提供可执行文件,开箱即用,选项 2 & 3 需要 Python 环境,选项 4 需要 go 环境,选项 6 需要 Rust 环境。

基本功能

在计算机领域中,create, read, update, and delete (缩写为 CRUD) 是访问持久存储的4项基本操作。

Operation SQL HTTP
Create INSERT PUT / POST
Read (Retrieve) SELECT GET
Update (Modify) UPDATE PUT / POST / PATCH
Delete (Destroy) DELETE DELETE

在实际应用里面试一试:zfile

实验二:性能观测

评测工具

标准测试

指标:吞吐率Throughput延迟Latency,以及环境参数:对象尺寸object size并发性服务器数量

建议思考:

  • 对象尺寸如何影响性能?
    • 对于熟悉的某类应用,根据其数据访问特性,怎样适配对象存储最合适?
  • I/O 延迟背后的关键影响要素?
    • 首先要采集全面的 I/O 延迟观测数据。
    • 百分位延迟观测需使用s3bench,然后即可分析尾延迟影响因素。
  • 如果客户端爆满将怎样?
    • 请求并发数如何同时影响延迟分布和吞吐率?如何保障服务质量?
  • 横向扩展系统 (Scaling Out) 效果如何 (向系统中追加更多存储服务器)?

不限于上述内容,鼓励更丰富思考。

更进一步

实验三:尾延迟挑战

尝试应对

  • 对冲请求
  • 关联请求

怎样预测

  • 排队论
  • 序列预测

已知问题

扩展资料

Zhan.Shi @ 2017, 2018, 2019, 2020, 2021