CLUSTER_day04

一:块存储应用案例
快照:把硬盘(镜像)在某一个时刻的数据,做一个备份。

1、创建镜像快照

  1. 查看镜像快照(默认所有镜像都没有快照)。
    [root@node1 ~]# rbd snap ls jacob
    #查看某个镜像有没有快照,jacob是镜像的名称,ls是list查看

  2. 给镜像创建快照。
    [root@node1 ~]# rbd snap create jacob --snap jacob-snap1
    #为jacob镜像创建快照,–snap指定快照名称,快照名称为jacob-snap1,快照名称可以任意
    [root@node1 ~]# rbd snap ls jacob

rbd存储池——》jacob——xxx
快照 jacob-snap1——xxxx

  1. 模拟用户误删:删除客户端写入的测试文件
    (注意:在删除前,一定要做快照)
    [root@client ~]# rm -rf /mnt/a.txt
    [root@client ~]# umount /mnt
    [root@client ~]# rbd unmap /dev/rbd0

rbd存储池——》jacob
快照 jacob-snap1——xxxx

  1. 还原快照
    [root@node1 ~]# rbd snap rollback jacob --snap jacob-snap1

rollback是回滚的意思,使用jacob-snap1快照回滚数据,对jacob镜像进行回滚数据

[root@client ~]# mount /dev/rbd0 /mnt/        #客户端重新挂载分区
[root@client ~]# ls /mnt     #查看数据是否被恢复

rbd存储池——》jacob——xxxx
快照 jacob-snap1——xxxx

2、创建快照克隆
ceph共享——》存储池——》创建镜像——》用户访问
ceph共享—》存储池—》创建镜像(6G数据)—》快照(6G数据)—》创建镜像(6G数据)-》用户

快照的作用:
1、还原数据。
2、基于当前的快照创建一个镜像(可以直接使用,不需要格式化)

1)克隆快照
[root@node1 ~]# rbd snap protect jacob --snap jacob-snap1    #保护快照
#jacob是镜像名称,jacob-snap1是前面创建的快照(被保护的快照,不可以被删除)
[root@node1 ~]# rbd snap rm jacob --snap jacob-snap1 #删除被保护的快照,会失败
[root@node1 ~]# rbd clone
jacob --snap jacob-snap1 jacob-clone --image-feature layering
[root@node1 ~]# rbd list

2)查看克隆镜像与父镜像快照的关系
[root@node1 ~]# rbd info jacob-clone
rbd image ‘jacob-clone’:
    size 15360 MB in 3840 objects
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.d3f53d1b58ba
    format: 2
    features: layering
    flags:
    parent: rbd/jacob@jacob-snap1
#克隆镜像的很多数据都来自于快照链(相当于文件的软链接的概念)
#如果希望克隆镜像可以独立工作,就需要将父快照中的数据,全部拷贝一份,但比较耗时!!!
[root@node1 ~]# rbd flatten jacob-clone        #让新克隆的镜像与快照脱离关系
[root@node1 ~]# rbd info jacob-clone            #查看镜像信息
rbd image ‘jadob-clone’:
    size 15360 MB in 3840 objects
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.d3f53d1b58ba
    format: 2
    features: layering
    flags:
#注意,父快照信息没了!

3)删除快照
[root@node1 ceph]# rbd snap rm jacob --snap jacob-snap1
//没有取消保护前,无法删除。
rbd: snapshot ‘jacob-snap1’ is protected from removal.
2021-03-12 17:44:20.173668 7f0e94161d80 -1 librbd::Operations: snapshot is protected

[root@node1 ceph]# rbd snap unprotect jacob --snap jacob-snap1
//取消保护
[root@node1 ceph]# rbd snap rm jacob --snap jacob-snap1 //删除快照
[root@node1 ceph]# rbd snap ls jacob //查看镜像的快照

二:Ceph文件系统

1)部署元数据服务器
登陆node1,安装ceph-mds软件包(如果前面课程已经安装,此步骤可以忽略)
[root@node1 ~]# yum -y install ceph-mds

2)创建存储池
[root@node1 ceph]# ceph osd pool create cephfs_data 64
#创建存储池,共享池的名称为cephfs_data,对应有64个PG
#共享池名称可以任意
[root@node1 ceph]# ceph osd pool create cephfs_metadata 64
#创建存储池,共享池的名称为cephfs_metadata,对应有64个PG
(如要删除某个存储池: ceph osd pool delete 存储池名 存储池名 --yes-i-really-really-mean-it)

3)登陆node1部署节点操作
[root@node1 ~]# cd /root/ceph-cluster
#该目录,是最早部署ceph集群时,创建的目录
[root@node1 ceph-cluster]# ceph-deploy mds create node1
#远程nod3,拷贝集群配置文件,启动mds服务

4)创建Ceph文件系统
[root@node1 ceph-cluster]# ceph fs new myfs1 cephfs_metadata cephfs_data
#myfs1是名称,名称可以任意,注意,先写metadata池,再写data池
#fs是filesystem的缩写,filesystem中文是文件系统
#默认,只能创建1个文件系统,多余的会报错

[root@node1 ceph-cluster]# ceph fs ls

5)客户端挂载(客户端需要安装ceph-common,前面的课程已经安装)
[root@client ~]# mount -t ceph 192.168.4.11:6789:/ /mnt
-o name=admin,secret=AQBTsdRapUxBKRAANXtteNUyoEmQHveb75bISg==

#注意:-t(type)指定文件系统类型,文件系统类型为ceph
#-o(option)指定mount挂载命令的选项,选项包括name账户名和secret密码
#192.168.4.11为MON节点的IP(不是MDS节点),6789是MON服务的端口号
#admin是用户名,secret后面是密钥
#密钥可以在/etc/ceph/ceph.client.admin.keyring中找到。

6789后面的/,表示ceph的文件系统存储。

[root@client ~]# df -Th

错误点:
1、密码不对。报错:坏的超级块。
2、用户名不对。报错: 权限不足(permission denied)
3、ceph-mds.target服务没有启动。报错:设备不存在(don’t exits)
4、服务有启动,没有文件系统。卡死。

扩展知识:
[root@node1 /]# ceph auth get-or-create client.nb
osd ‘allow *’
mds ‘allow *’
mon ‘allow *’ > /etc/ceph/nb.keyring
#文件名可以自定义。执行完成后会生成一个nb用户。


lsblk
/dev/sda /dev/sdb /dev/sdc

文件系统
mount -t ceph 。。。。。。。 /mnt
df -Th

三、Ceph对象存储
1)部署RGW软件包(提前装过,可忽略)
[root@node3 ~]# yum -y install ceph-radosgw

2)新建网关实例
拷贝配置文件,启动一个rgw服务
[root@node1 ~]# cd /root/ceph-cluster
[root@node1 ceph-cluster]# ceph-deploy rgw create node3        #远程mode3启

3)、登陆node3验证服务是否启动
[root@node3 ~]# ps aux |grep radosgw
ceph 4109 0.2 1.4 2289196 14972 ? Ssl 22:53 0:00 /usr/bin/radosgw -f --cluster ceph --name client.rgw.node3 --setuser ceph --setgroup ceph
[root@node3 ~]# systemctl status ceph-radosgw@*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段MATLAB代码的作用是将时间尺度为15分钟的风电一个月出力数据进行聚类,提取出典型日出力数据,并将典型日数据保存到MAT文件中。 具体实现步骤如下: 1. 首先使用load函数加载一个名为"a.mat"的MAT文件,该文件包含了时间尺度为15分钟的风电一个月出力数据。 2. 将数据进行重塑,将原始数据按照日期进行排列,每个日期的数据作为一行,每个时间点的数据作为一列。具体实现方法是将数据向量按照96个数据点(即24小时*4个数据点)进行分组,然后将每组数据作为一行,将所有日期的数据排列成一个矩阵,如下所示: ``` num_days = numel(data) / 96; % 计算数据中包含的日期数 data_matrix = reshape(data, 96, num_days)'; % 将数据重塑为矩阵 ``` 3. 使用k-means算法对数据进行聚类,将数据分成num_clusters个簇。聚类的结果包括每个数据点所属的簇编号idx,以及每个簇的中心centers,如下所示: ``` num_clusters = 10; % 聚类的簇数 [idx, centers] = kmeans(data_matrix, num_clusters); % 对数据进行聚类 ``` 4. 将聚类中心centers作为典型日出力数据,将其重塑为向量形式,并保存到MAT文件中,如下所示: ``` typical_day_profiles = centers'; % 将聚类中心作为典型日出力数据 typical_day_data = reshape(typical_day_profiles, [], 1); % 将典型日数据重塑为向量形式 save('typical_day_wind_data.mat', 'typical_day_data'); % 将典型日数据保存到MAT文件中 ``` 通过这段代码,我们可以将时间尺度为15分钟的风电一个月出力数据进行聚类,提取出典型日出力数据,并将典型日数据保存到MAT文件中,方便后续的分析和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值