暂未分类
未读简单快速的在客户端验证rbd的cache是否开启首先修改配置文件
在ceph.conf中添加:
123[client]rbd cache = truerbd cache writethrough until flush = true
开启以后,在这台机器上进行测试
1234[root@node8109 ~]# rbd -p rbd bench-write zp --io-size 4096 --io-threads 256 --io-total 102400000 --io-pattern seqbench-write io_size 4096 io_threads 256 bytes 102400000 pattern seq SEC OPS OPS/SEC BYTES/SECelapsed: 0 ops: 25000 ops/sec: 26830.05 bytes/sec: 109895890.09
可以看到io达到了26830每秒
下面进行关闭后再测试:
1234567[root@node8109 ~]# rbd -p rbd ...
暂未分类
未读在ceph的一台OSD主机出现故障的时候,数据可以通过副本的机制进行恢复,之后通过删除osd的操作也能够将故障osd从osd tree当中删除掉,但是故障的 osd 的主机仍然会留在集群当中,通过 ceph osd tree 或者打印 crush map 都可以看到这个损坏的节点主机名,所以这里讲下怎么删除掉这个无用的host
首先集群环境为两台主机 node8109 node8110 , node8110主机出现故障需要清理掉
先看下当前的osd tree状态12345678910[root@node8109 webui]# ceph osd treeID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY -1 4.00000 root default -3 4.00000 rack localrack -2 2.00000 ...
假设环境为三个mon,主机名为mon1、mon2、mon3,现在mon3上面的系统盘损坏,mon的数据完全丢失,现在需要对mon3进行恢复处理
1、停止所有mon进程,可以不停其他进程,需要停止内核客户端以及对外的服务,防止卡死在mon1机器上执行
1/etc/init.d/ceph stop mon
在mon2机器上执行
1/etc/init.d/ceph stop mon
2、分别在mon主机上获取当前的monmap在mon1机器上执行
1ceph-mon -i mon1 --extract-monmap /tmp/monmap
备份原始monmap
1cp /tmp/monmap /tmp/monmapbk
在mon2机器上执行
1ceph-mon -i mon2 --extract-monmap /tmp/monmap
备份原始monmap
1cp /tmp/monmap /tmp/monmapbk
3、处理monmap,去掉损坏的mon3的map信息在mon1机器上执行
1monmaptool /tmp/monmap --rm mon3
在mon2机器上执行
1monmapt ...
暂未分类
未读本文中的命令的第一版来源于国外的一个博客,后面的版本为我自己修改的版本
查询的命令如下:
123456789101112131415ceph pg dump | awk ' /^pg_stat/ { col=1; while($col!="up") {col++}; col++ } /^[0-9a-f]+\.[0-9a-f]+/ { match($0,/^[0-9a-f]+/); pool=substr($0, RSTART, RLENGTH); poollist[pool]=0; up=$col; i=0; RSTART=0; RLENGTH=0; delete osds; while(match(up,/[0-9]+/)>0) { osds[++i]=substr(up,RSTART,RLENGTH); up = substr(up, RSTART+RLENGTH) } for(i in osds) {array[osds[i],pool]++; osdlist[o ...
创建一个rbd1[root@mytest ~]# rbd create test1 --size 4000
查看rbd信息123456[root@mytest ~]# rbd info test1rbd image 'test1': size 4000 MB in 1000 objects order 22 (4096 kB objects) block_name_prefix: rb.0.fa6c.6b8b4567 format: 1
可以看出是没写入真实数据的
12[root@mytest ~]# ceph df|grep rbd rbd 0 133 0 30627M 2
查询rbd池里面的对象信息123[root@mytest ~]# rados ls -p rbdtest1.rbdrbd_directory
查看下这两个对象的内容
123[root@mytest ~]#rados -p rbd get test1.rbd test1rbd.txt[root@mytest ...
暂未分类
未读
ceph集群新搭建以后是只有一个默认的存储池rbd的池
## 创建文件接口集群
1.创建一个元数据池12[root@mytest ~]# ceph osd pool create metadata 20 20pool 'metadata' created
2.创建一个数据池12[root@mytest ~]# ceph osd pool create data 20 20pool 'data' created
3.创建一个文件系统12[root@mytest ~]# ceph fs new ceph metadata datanew fs with metadata pool 4 and data pool 5
4.创建一个mds1[root@mytest ~]# ceph-deploy mds create mytest
5.部署完检查状态1234567891011[root@mytest ceph]# ceph -s cluster 7e5469ac-ae1f-494f-9913-901f60c0a76b hea ...
ceph的server是定期会发布版本,而它的客户端是放到linux 内核当中的,一些属性的支持是依赖于内核版本的,这样就存在一些问题,一些功能后端支持,而客户端旧了;还有可能是客户端用的很新的内核,而后端比较旧不支持,所以查看了下内核中的 features 文件,可以看到这个对应关系,总结了下就是下面的列表
注意表中:
S=SUPPORTED_DEFAULT 代表客户端支持这个属性
R=REQUIRED_DEFAULT 代表需要服务端支持这个属性
missing 2040000 意思是 CEPH_FEATURE_CRUSH_TUNABLES (40000) 和 CEPH_FEATURE_CRUSH_TUNABLES2 (2000000) 不被当前客户端支持,一般要么关闭新的server端的这个属性,或者升级到支持的版本的内核.
内核代码查看地址:https://elixir.bootlin.com/linux/v5.7/source/include/linux/ceph/ceph_features.h
Some examp ...
暂未分类
未读nginx可以实现反向代理的配置,并且可以使用缓存来加速,本文是简单的实现功能的配置,暂时没有做其他的优化的部分的配置,从网上的资料来看,很多配置都是没有讲哪些是必须配置的,我自己在配置过程中就发现没有生成缓存文件,下面来记录下配置的内容
123456789101112131415161718192021upstream test{ server 127.0.0.1:8080; }proxy_cache_path /var/cache/nginx/proxy_cache keys_zone=cache_zone:2000m max_size=1000m;server { listen 80; server_name localhost; location / { proxy_pass http://127.0.0.1:8080; proxy_cache cache_zone; proxy_cache_valid 200 304 302 ...
通过网络可以远程开关机,某些时候比较方便管理机器
检查服务器是否支持远程网络开机123456789101112131415161718192021222324[root@lab5101 ~]# ethtool eth0Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100ba ...
暂未分类
未读dm-cry加密方式密码与文件与其它创建加密文件系统的方法相比,dm-crypt系统有着无可比拟的优越性:它的速度更快,易用性更强。除此之外,它的适用面也很广,能够运行在各种块设备上,即使这些设备使用了RAID和 LVM也毫无障碍。
如果看到类似下面的输出,说明AES模块已经加载了。
123456789101112cat /proc/cryptoname : aesdriver : aes-genericmodule : kernelpriority : 100refcnt : 3selftest : passedtype : cipherblocksize : 16min keysize : 16max keysize : 32
否则可以用modprobe命令来手工加载AES模块。
1modprobe aes
检查dmsetup软件包是否已经建立了设备映像程序,用如下命令:
1ls -l /dev/mapper/control
检查dm-crypt内核模块是否加载
123456[roo ...