mds文件存储接口

服务端操作

1. 将监控节点制作成文件系统

  • 我们这里是考虑到虚拟机环境,所以将监控节点制作成文件系统,生产环境中尽量不要这么做。
- 在管理端admin节点操作
cd /etc/ceph                # 必须切换到工作目录下,因为ceph认证的机制是检索当前目录下的密钥环文件ceph.bootstrap-rgw.keyring
ceph-deploy mds create mon01 mon02 mon03        # 将mon01 mon02 mon03制作成文件系统格式- 在管理节点查看各个节点的mds服务
ssh root@mon01 systemctl status ceph-mds@mon01
ssh root@mon02 systemctl status ceph-mds@mon02
ssh root@mon03 systemctl status ceph-mds@mon03

2. 启用Ceph文件系统

  • Ceph文件系统至少需要两个RADOS池,一个用于数据,一个用于元数据。
- 在管理端admin节点操作
1. 创建数据pool池,将数据的大小设置为128个pg
ceph osd pool create cephfs_data 128
# pool 'cephfs_data' created2. 创建pool池,将元数据的大小设置为128个pg
ceph osd pool create cephfs_metadata 128
# pool 'cephfs_metadata' created3. 启用msd文件系统的pool池
ceph fs new cephfs cephfs_metadata cephfs_data      # 必须元数据池在前,真实数据池在后4. 查看cephfs
ceph fs ls
# name: ceph, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

3. 创建用户

  • 在服务端创建用户,主要是为了控制客户端对ceph服务端数据存储的权限
- 在管理端admin节点操作
1. 账户为celient.nana,用户name为nana,nana对文件系统的根目录(/ 不是操作系统的根目录,指的是服务端创建的文件系统的挂载点)有rw权限
ceph fs authorize cephfs client.nana / rw| tee /etc/ceph/nana.keyring2. 账户为celient.tom,用户name为tom,tom对文件系统的根目录有r权限,对文件系统的根目录下子目录/test有rw权限
ceph fs authorize cephfs client.tom / r /test rw| tee /etc/ceph/tom.keyring3. 查看用户对文件存储的权限
ceph auth list                          查看ceph创建的所有用户
ceph auth rm client.tom                 删除用户tom
ceph auth get client.nana               查看用户nana的权限

客户端操作

切记客户端一定要在public_addr网络内

  • 我们这里模拟管理服务器(admin节点)当作客户端访问public网络,所以客户端的部分操作我们不需要重复操作了。

生产环境中,客户端需要安装ceph软件包,还需要有配置文件以及密钥环文件

生产环境中,客户端需要有配置文件:ceph.conf
还要有账号的密钥环文件:nana.keyring、tom.keyring- 在生产环境客户端需要操作
1. 首先需要在客户端创建好工作目录
mkdir /etc/ceph2. 在ceph的管理节点将密钥文件传给该客户端
cd /etc/ceph
scp -r nana.keyring 1.1.1.10:/etc/ceph
scp -r tom.keyring 1.1.1.10:/etc/ceph3. 在ceph的管理节点将/etc/hosts文件传给客户端
scp -r /etc/hosts 1.1.1.10:/etc/4. 客户端需要安装ceph软件包
wget https://download.ceph.com/rpm-luminous/el7/noarch/ceph-release-1-1.el7.noarch.rpm
rpm -ivh ceph-release-1-1.el7.noarch.rpm
yum -y install ceph

1. 客户端制作密钥文件

  • 从密钥文件中只提取密钥内容,挂载使用
- 在客户端操作
1. 将用户nana的密钥导入nana.key中
ceph-authtool -n client.nana -p nana.keyring > nana.key
cat nana.key
# AQDg36RgQat7GhAAFRQkGubUw2ahEB4P/qAK3Q==2. 将用户tom的密钥导入tom.key中
ceph-authtool -n client.tom -p tom.keyring > tom.key
cat tom.key
# AQBM+KRgR7GNEBAAgYrR12s+kp/VtJUdsd6URA==

2. 客户端挂载使用

- 客户端操作
1. 在客户端以服务端创建用户nana的身份,将mon01,mon02,mon03挂载在本地的/opt/目录下,默认端口号6789
mount -t ceph mon01:6789,mon02:6789,mon03:6789:/ /opt/ -o name=nana,secretfile=/etc/ceph/nana.key2. 查看客户端本地的挂载点
df -h
# 1.1.1.4:6789,1.1.1.5:6789,1.1.1.6:6789:/   54G     0   54G   0% /opt

测试

1. 在挂载的/opt/目录下创建a.txt文件
echo 123 > /opt/a.txt2. 将admin节点的密钥文件传给mon01
scp nana.key root@1.1.1.4:/etc/ceph/3. 切换到mon01服务器,将mon01当作客户端,将ceph的文件系统挂载在/opt目录下,查看/opt目录下的文件内容
mount -t ceph mon01:6789,mon02:6789,mon03:6789:/ /opt/ -o name=nana,secretfile=/etc/ceph/nana.key
# 将ceph集群文件系统的挂载点挂载在本地的/opt/目录下
ls /opt         这里已经实现了文件系统的数据共享
# a.txt- 测试ceph的高可用性
1. 切换到mon01节点,关闭ceph集群中服务端mon01节点服务
systemctl stop ceph-mds@mon012. 查看当前mfs文件系统的集群状态,还有两个节点可以使用
ceph -s
# mds: ceph-1/1/1 up  {0=mon03=up:active}, 2 up:standby3. 在客户端mon01节点/opt/目录下创建b.txt
echo 123 > /opt/b.txt4. 切换到客户端admin节点查看文件是否创建成功
ls /opt
# a.txt b.txt       说明ceph集群的文件存储不存在nfs那种单点故障问题- 测试ceph集群的权限管理
echo 123 > /opt/test/c.txt
umount /opt             # 卸载挂载用户nana的身份
# 以tom用户的身份进行挂载,挂载到opt目录下。tom用户身份对挂载的根目录有r权限,对文件系统的根目录下子目录/test有rw权限
mount -t ceph mon01:6789,mon02:6789,mon03:6789:/ /opt/ -o name=tom,secretfile=/etc/ceph/tom.key
echo 123456 >  /opt/a.txt
# -bash: /opt/a.txt: Permission denied
echo 123456 >  /opt/test/test.txt
cat /opt/test/c.txt
# 123

RBD块存储接口

服务端操作

1. 创建RBD接口需要创建专门用于RBD的存储池

- 在管理端admin节点操作
1. 创建一个名为kvm的普通pool池,并指定pg和pgp都为32
ceph osd pool create kvm 32 32
# pool 'kvm' created2. 将pool池转换为RBD模式
ceph osd pool application enable kvm rbd
# enabled application 'rbd' on pool 'kvm'

2. 初始化存储池

- 在管理端admin节点操作
1. 初始化pool池
rbd pool init -p kvm

3. 创建镜像

  • 从pool池中划分出一块硬盘空间,这里的硬盘空间只是一个限制条件
- 在管理端admin节点操作
1. 从pool池里面划分一个1G的硬盘img1
rbd create --size 1G --pool kvm img1

4. 查看镜像信息

- 在管理端admin节点操作
1. 查看pool池中所有划分出的硬盘空间
rbd ls --pool kvm -l
# NAME SIZE PARENT FMT PROT LOCK
# img1 1GiB          2     2. 指定一块硬盘空间,查看指定硬盘空间的详细信息
rbd --image img1 --pool kvm info
# rbd image 'img1':
#   size 1GiB in 256 objects

5. 修改镜像大小

生产环境中,镜像大小一般建议只增不减!!!缩容可能会导致数据丢失!!!

- 在管理端admin节点操作
1. 将pool池中的硬盘img1大小修改为5个G
rbd resize --pool kvm --image img1 --size 5G
# Resizing image: 100% complete...done.2. 缩减镜像的大小必须要加一个选项--allow-shrink
rbd resize --pool kvm --image img1 --size 2G --allow-shrink
# Resizing image: 100% complete...done

6. 删除镜像

推荐使用trash命令,这个命令删除是将镜像移动到回收站,如果想找回还可以恢复。

  • 如果使用remove或者rm都可以直接删除镜像,通常情况不建议直接删除镜像,直接删除镜像不可恢复!!!
- 在管理端admin节点操作
方式一: 将镜像放入回收站,数据可恢复
rbd trash move kvm/img1                         将镜像放入回收站
rbd trash list --pool kvm                       查看kvm放入回收站的硬盘
# 10e66b8b4567 img1
rbd trash restore kvm/10e66b8b4567              恢复kvm放入回收站的硬盘    方式二: 直接删除镜像,不推荐!!!
rbd remove kvm/img2
# Removing image: 100% complete...done.

7. 创建用户

  • 在ceph集群,在管理节点创建并授权一个用户可访问指定的rdb存储池,这里指定存储池为kvm。
- 在管理端admin节点操作
1. 创建并授权一个用户osd-mount可访问指定的rdb存储池kvm
ceph auth get-or-create client.osd-mount osd "allow * pool=kvm" mon "allow r" > /etc/ceph/ceph.client.osd-mount.keyring
# 创建或者获取账号密钥,密钥名字为osd-mount。对存储池kvm具备所有权限,对mon节点具备读权限。
# 追加到/etc/ceph/ceph.client.osd-mount.keyring文件中。2. 查看密钥文件的内容
cat ceph.client.osd-mount.keyring
# [client.osd-mount]
# key = AQB/EqVg37WmMxAA2NOXhlqpduXUmLRv8sHdnA==3. 关闭RBD镜像特性,默认情况下只支持layering和striping特性,需要将其他的特性关闭,否则客户端无法正常使用
rbd feature disable kvm/img1 object-map, fast-diff, deep-flatten

客户端操作

切记客户端一定要在public_addr网络内

  • 我们这里模拟管理服务器(admin节点)当作客户端访问public网络,所以客户端的部分操作我们不需要重复操作了。

生产环境中,客户端需要安装ceph软件包,还需要有配置文件以及密钥环文件

- 生产环境中,需要将服务端的这些目录和文件推送给客户端
ssh root@1.1.1.10 mkdir /etc/ceph
scp /etc/ceph/ceph.client.osd-mount.keyring root@1.1.1.10:/etc/ceph
scp /etc/ceph/ceph.conf root@1.1.1.10:/etc/ceph

1. 安装ceph-common软件包

- 在客户端操作
yum -y install ceph-common
注意:安装ceph-common软件包推荐使用软件包源和Ceph集群源相同,软件版本一致。

2. 执行客户端映射

- 在客户端操作
# 注意用户名为 osd-mount
1. 将存储池kvm中的硬盘img1进行映射,映射的过程中需要指定密钥环文件,指定用户名osd-mount
cd /etc/ceph
rbd map --pool kvm --image img1 --keyring /etc/ceph/ceph.client.osd-mount.keyring --user osd-mount
# /dev/rbd0

3. 查看/断开映射

- 在客户端操作
1. 查看映射过来的裸盘
rbd showmapped
# id pool image snap device
# 0  kvm  img1  -    /dev/rbd0 2. 解除映射
rbd unmap kvm/img1
rbd unmap -o force kvm/img1             # 强制解除

4. 格式化并挂载

- 在客户端操作
1. 将映射的硬盘/dev/rbd0格式化成xfs的文件系统
mkfs.xfs /dev/rbd0 2. 挂载使用格式化的文件系统
mount /dev/rbd0 /mnt/

快照功能

查看快照

1. 查看快照
rbd snap list kvm/img1
# SNAPID NAME       SIZE TIMESTAMP
#      4 img1_snap1 1GiB Thu May 20 00:11:41 2021 2. 查看快照json格式输出
rbd snap list kvm/img1 --format json --pretty-format

限制快照数

1. 限制镜像可创建的快照数
rbd snap limit set kvm/img1 --limit 32. 解除限制
rbd snap limit clear kvm/img1

删除快照

1. 删除指定快照
rbd snap rm kvm/img1@img1_snap12. 删除所有快照
rbd snap rm kvm/img1

快照克隆

1. 在服务端ceph集群中重新创建一个快照,并将重新创建的快照克隆一个kvm/img3
rbd snap create kvm/img1@img1_snap666
rbd snap protect kvm/img1@img1_snap666
rbd clone kvm/img1@img1_snap666 --dest kvm/img32. 在客户端测试
umount /mnt         # 卸载之前的挂载
rbd map --pool kvm --image img3 --keyring /etc/ceph/ceph.client.osd-mount.keyring --user osd-mount      # 将克隆好的快照kvm/img3映射到客户端
# /dev/rbd1
mount /dev/rbd1 /mnt            # 挂载客户端
ls /mnt
## a.txt

快照展平

  • 通常情况下通过克隆而得到的镜像会保留对父快照的引用,这时候不可以删除该父快照,否则会有影响
rbd snap rm kvm/img1@img1_snap666               报错信息如下
# Removing snap: 0% complete...failed.
# rbd: snapshot 'img1_snap666' is protected from removal.
# 2021-05-20 00:46:38.171161 7f698cd12d40 -1 librbd::Operations: snapshot is protected
  • 如果响应删除快照但是想保留其子镜像,必须先展平其子镜像,展开的时间取决于镜像的大小。
1. 展平子镜像
rbd flatten kvm/img3
# Image flatten: 100% complete...done.2. 取消快照保护
rbd snap unprotect kvm/img1@img1_snap6663. 删除快照
rbd snap rm kvm/img1@img1_snap666
# Removing snap: 100% complete...done.4. 查看镜像
bd ls --pool kvm -l                         kvm/img3依然存在
# NAME            SIZE PARENT FMT PROT LOCK
# img1            5GiB          2      excl
# img1@img1_snap1 1GiB          2
# img3            5GiB          2

测试

验证快照

1. 在客户端写入文件
echo 123 > /mnt/a.txt2. 在服务端ceph集群中对镜像做快照
rbd snap create kvm/img1@img1_snap1                在服务端ceph集群中对镜像做快照3. 在客户端删除文件
rm -rf /mnt/a.txt4. 在客户端卸载挂载,断开映射
umount /mnt
rbd unmap kvm/img15. 在服务端ceph集群中恢复快照
rbd snap rollback kvm/img1@img1_snap16. 客户端重新映射并挂载
rbd map --pool kvm --image img1 --keyring /etc/ceph/ceph.client.osd-mount.keyring --user osd-mount
mount /dev/rbd0 /mnt7. 查看数据还原
ls /mnt
# a.txt

验证ceph在线扩容

1. 重启一个客户端终端,执行一个脚本
while true;do echo 111 >> /mnt/a.txt;sleep 1;done2. 在服务端ceph集群中调整ceph集群的大小
rbd resize --pool kvm --image img1 --size 5G3. 在客户端执行下述命令
resize2fs /dev/rbd0
xfs_growfs /dev/rbd04. 查看扩容后的硬盘空间大小
df -h           查看文件系统扩容后的大小
# /dev/rbd0                5.0G   34M  5.0G   1% /mnt

RGW对象存储接口

  • 大多数对象存储的核心资源类型大同小异,如亚马逊S3̵、OpenStack Swift与RadosGW。这其中S3与Swift互不兼容,而RadosGW兼容S3与Swift。RadosGW为了兼容S3与Swift,Ceph在RadosGW集群的基础上提供了RGW(Rados GateWay)数据抽象层和管理层,它可以原生兼容S3和Swift的应用程序结构(API)。

  • S3和Swift他们可基于http或者https完成数据交换,由RadosGW内建的Civeweb提供服务,它还可以支持主流的Web服务器程序以代理的形式接收用户请求,在转发至RadoGW进程,这些代理服务器包括nginx、haproxy等。

  • RGW的功能依赖于对象网关守护进程实现,负责向客户端提供REST API接口。出于冗余负载均衡的需求,一个Ceph集群上通常不止一个RadoGW守护进程。在云计算环境中还会在多个Ceph集群中定义出多个Zone,这些Zone之间通过同步实现冗余功能,在本地环境中通常不需要Zone。

服务端操作

1. 创建radosgw接口

  • 如果使用搭配类似S3或者Swift接口的时候才需要部署/创建radosgw接口,RadosGW通常作为对象存储使用。

一般生产环境中rgw守护进程需要部署高可用

- 在管理端admin节点操作
1. 创建RadosGW(Rados GateWay)守护进程,可以创建在集群任何节点
cd /etc/ceph
ceph-deploy rgw create mon022. 查看RadosGW守护进程创建成功后,默认情况下自动创建的一系列用于RadosGW的存储池
ceph osd pool ls
# .rgw.root
# default.rgw.control       控制器信息
# default.rgw.meta          记录元数据
# default.rgw.log           日志信息3. 默认情况下RadosGW会监听7480号端口,在创建完成后日志会有显示。我们也可以在浏览器输入mon02的ip地址加端口号查看(192.168.70.5:7480)。
curl http://mon02:7480
# url http://mon02:7480
# <?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult>[root@admin ceph]#

2. 更改监听端口号

  • RadosGW守护进程内部由Civeweb(公民网)实现,通过对Civeweb的配置可以完成对RadosGW的基本管理。
  • Civeweb默认监听在7480端口并提供http协议,如果需要修改配置需要编辑ceph.conf配置文件,在管理节点编辑ceph.conf,新增如下配置。
- 在管理端admin节点操作
1. 新增配置文件内容
vim /etc/ceph/ceph.conf
...
[client.rgw.mon02]
rgw_host = mon02
rgw_frontends = "civetweb port=8080 num_threads=500 request_timeout_ms=60000"     2. 将管理节点的配置文件推送给其他各个节点
ceph-deploy --overwrite-conf config push mon01 mon02 mon03 osd01 osd02 osd03    # --overwrite-conf强制覆盖- 在mon02节点操作
1. 重启radosgw守护进程服务
systemctl restart ceph-radosgw.target
netstat -an | grep 8080                 查看修改后的端口号
# tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN

3. Http配置

  • 要在Civetweb(公民网)上启用SSL,首先你需要一个证书,它应该与提供Ceph对象网关服务的域名相对应。
- 在mon02(rgw节点)上进行操作
1. 生成CA证书私钥:civetweb.key
openssl genrsa -out civetweb.key 20482. 生成CA证书公钥:civetweb.crt
openssl req -new -x509 -key civetweb.key -out civetweb.crt -days 3650 -subj "/CN=1.1.1.5"3. 将生成的证书合并为pem
cat civetweb.key civetweb.crt > /etc/ceph/civetweb.pem4. 修改/etc/ceph/ceph.conf配置文件
vim /etc/ceph/ceph.conf
...
[client.rgw.mon02]
rgw_host = mon02
# rgw_frontends = "civetweb port=8080 num_threads=500 request_timeout_ms=60000"
rgw_frontends = "civetweb port=80+443s ssl_certificate=/etc/ceph/civetweb.pem num_threads=500 request_timeout_ms=60000"
# port:https端口需要在端口号后面加一个s,ssl_certificate:指定证书的路径5. 重启服务
systemctl restart ceph-radosgw.target
netstat -an |grep 443
netstat -an |grep -w 80- 测试
其他虚拟机输入: curl http://mon02
浏览器输入:https://192.168.70.5/:443或者http://192.168.70.5/

4. 创建RadosGW用户

- 在管理端admin节点操作
1. 创建Radosgw用户,可以在集群任何管理节点执行下面命令。
radosgw-admin user create --uid="test" --display-name="test user"
# uid:指定用户名         display-name:指定用户描述信息2. 查看用户信息
radosgw-admin user info --uid="test"
# "access_key": "22FB5A913HO5Z6H7WB60",
# "secret_key": "j9PTtEmRVqB8ykr8N6oceV2GNqWGNtGf7nL1heu1"

客户端操作

切记客户端一定要在public_addr网络内

S3接口访问测试

  • 我们可以直接用我们的真机进行测试,真机测试需要先安装Python。
1. 打开电脑的cmd,安装pip模块
C:\Users\彭于晏>pip3 install boto2. 脚本可以放入pycharm中进行检测执行,需要先下载boto s3模块
# coding:utf-8
import ssl
import boto.s3.connection
from boto.s3.key import Keytry:_create_unverified_https_context = ssl._create_unverified_context
except AttributeError:pass
else:ssl._create_default_https_context = _create_unverified_https_context# test用户的keys信息
access_key = "22FB5A913HO5Z6H7WB60"
secret_key = "j9PTtEmRVqB8ykr8N6oceV2GNqWGNtGf7nL1heu1"# rgw的ip与端口
host = "1.1.1.5"
port = 443          # 如果使用443端口,下述链接应设置is_secure=True
# port = 80         # 如果使用80端口,下述连接应设置is_secure=Falseconn = boto.connect_s3(aws_access_key_id=access_key,aws_secret_access_key=secret_key,host=host,port=port,is_secure=True,validate_certs=False,calling_format=boto.s3.connection.OrdinaryCallingFormat()
)# 创建存储桶
conn.create_bucket(bucket_name='bucket01')
conn.create_bucket(bucket_name='bucket02')# 获得一个存储桶
bucket1 = conn.get_bucket('bucket01')
bucket2 = conn.get_bucket('bucket02')# 判断是否存在,不存在返回None
exists = conn.lookup('bucket01')
print(exists)
exists = conn.lookup('bucket02')
print(exists)# 查看bucket存储桶下的内容
print(list(bucket1.list()))
print(list(bucket2.list()))# 向S3存储数据,数据来源可以是file、stream或者string
# 上传文件
bucket1 = conn.get_bucket('bucket01')
key = Key(bucket=bucket1, name='myfile')            # name的值的数据是key
key.set_contents_from_filename(r'D:\课件\venv\nana.txt')
print(key.get_contents_as_string())         # 读取s3中文件的内容,返回string即文件nana.txt的内容# 上传字符串
bucket1 = conn.get_bucket('bucket01')       # 如果之前已经获取过对象,此处不需要重复获取
k = Key(bucket1)
k.key = 'xxx'
k.set_contents_from_string('lala is happy')
print(k.get_contents_as_string())# 删除一个存储桶,在删除存储桶本身时必须删除该存储桶内的所有key
bucket1 = conn.get_bucket('bucket01')
for key in bucket1:key.delete()
bucket1.delete()# bucket1.get_all_keys()[0].delete()        # 删除某一个key# 迭代遍历buckets和keys
for bucket in conn:for key in bucket:print(key.name,key.get_contents_as_string())# 判断文件加中是否有文件的方法
bucket1 = conn.get_bucket('bucket01')
res = bucket1.get_all_keys()
if len(res) > 0:print("有内容")
else:print("空文件")

RadosGW负载均衡

RadosGW负载均衡+高可用的架构如下

  • 在RadosGW前面加一层代理,同时还可以使用keepalived做高可用
  • 代理后端地址为RadosGW主机的IP+PORT,可以起多个RadosGW进程在不同的主机,这样就实现了负载均衡+高可用
  • 这时候HTTPS证书需要配置在前端代理,在使用s3cmd --configure的时候在"HTTP Proxy name"这里需要填写代理服务器访问的域名。
  • 在ceph.conf配置文件内不需要指定rgw_dns_name选项,配置为HTTP即可。

Ceph存储的三种模式 部署MDS文件存储 RBD块存储 RGW对象存储相关推荐

  1. Redis集群部署的三种模式

    一.Redis简介 Redis 是一款完全开源免费.遵守BSD协议的高性能(NOSQL)的key-value数据库.它使用ANSI C语言编写,支持网络.可基于内存亦可持久化的日志型.Key-Valu ...

  2. redis 高可用(持久化、主从复制、哨兵、集群)以及集群的三种模式

    Redis高可用定义 在web服务器中,高可用代表服务器可以正常访问的时间,一般使用百分比来衡量多长时间内可以提供正常服务 但是在redis中,高可用的定义还要更广泛一点,除了提供正常的服务(如主从分 ...

  3. (转)云计算的三种模式:IaaS、PaaS和SaaS 通俗理解

    突然想了解下有关云的一些知识,于是整理了一些资料供自己学习和理解. "云计算"已经越来越普遍,简单来说这就是一种共享资源的形式,不过是通过云来共享分布式的资源."云&qu ...

  4. SAAS云服务三种模式

    云服务的三种模式(官方介绍) IaaS(基础设施即服务) IaaS(Infrastructure as a Service),即基础设施即服务.提供给消费者的服务是对所有计算基础设施的利用,包 括处理 ...

  5. Hadoop的三种模式(单机模式,伪分布式,完全分布式)以及集群的搭建

    基本概念: 1. Hadoop是一个分布式文件系统的基础架构,用户可以利用集群进行高速运算和存储 2. Hadoop实现了一个分布式文件系统(Hadoop Distributed File Syste ...

  6. 云计算三种服务器模式,云服务的三种模式

    原标题:云服务的三种模式 我们来讲一下云服务的三种模式. IaaS IaaS,即基础教育设施即服务.该服务是提供给消费者使用的所有计算基础架构包 括处理CPU.内存.存储.网络和其它企业基本的计算资源 ...

  7. 详解 Calico 三种模式(与 Fannel 网络对比学习)

    参考 Component architecture calico架构与网络模型深入分析 35 | 解读Kubernetes三层网络方案 calico学习 Kubernetes网络插件Flannel的3 ...

  8. 雄安,杭州政府自建区块链底层平台 自建、外包、加入三种模式谁是未来

    文丨互链脉搏·黑珍珠号 未经授权,不得转载! 在科技公司为政府开拓出逐渐明确的区块链治理之路后,城市政府开始尝试自建底层平台. 11月17日,雄安发布消息,将积极探索搭建自主知识产权的区块链底层基础平 ...

  9. 云计算的三种模式:IaaS、PaaS和SaaS 通俗理解

    突然想了解下有关云的一些知识,于是整理了一些资料供自己学习和理解. "云计算"已经越来越普遍,简单来说这就是一种共享资源的形式,不过是通过云来共享分布式的资源."云&qu ...

最新文章

  1. Django源码分析9:model.py表结构的初始化概述
  2. map for循环_JavaScript 用 for 循环太 low?你是不是有什么误解
  3. pythonsparkfilter_python中的map、filter、reduce函数
  4. 学习shell的第三天
  5. 文字转语音(Python pyttsx3)
  6. xshell官网链接打不开了
  7. Systrace 学习笔记
  8. 一文读懂 12种卷积方法
  9. 小程序瀑布流-是真的流啊
  10. spring interation学习-01发送jms消息
  11. SVN提交(commit)时必须填写备注信息设置
  12. 廊坊金盾说手脚冰冷先暖胃
  13. python 活体检测_基于Python+Keras+OpenCV实现实时人脸活体检测 | 文末送书
  14. 代码审计:审计思路之实例解说全文通读
  15. 几款H桥电机驱动芯片直流有刷电机驱动芯片性能分析
  16. 高等数学二从零开始学习的总结笔记(持续更新)
  17. HZAU新版正方教务系统一键教学评价
  18. 获取ckeditor的内容
  19. 一名985小硕的CV算法秋招经历总结
  20. Ackerman函数(递归与非递归算法实现)

热门文章

  1. Nginx反向代理,让网页可以被别人访问
  2. 用javamail解析邮件(失败,浏览器无法直接解析阅读,变成文件了)
  3. linux 设备驱动学习总结
  4. python 动物分类_《python深度学习》笔记---5.3-1、猫狗分类(使用预训练网络)
  5. python基础(全)带图详解
  6. 贝叶斯递推滤波器原理 -----本博客内容来自西安交大蔡远利教授的随机系统滤波与控制课件,特此声明
  7. PHP导出数据为excel文件
  8. 电大计算机形作业excl,电大计算机形考操作题(带截图)
  9. SSM+Maven电费管理系统源码+文档
  10. 袋鼠云研发手记 | 数栈DTinsight:详解FlinkX中的断点续传和实时采集