假设环境为三个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 ...
暂未分类
未读本文将介绍两种方式的系统盘的完整的备份,两种方式各有优缺点,需要根据实际情况来进行选择
使用dd的完整镜像克隆的方式
使用tar去备份数据,安装grub的方式
dd方式优点:简单,一条命令 dd if=/dev/sda of=/dev/sdb 就可以进行完整的系统备份了
缺点:时间非常长,备份一个系统盘,无论数据多少,系统盘全部会读取一遍,时间比较久备份目的盘需要大于原盘分区无法调整,根原分区一模一样
tar方式优点:时间短,只需要备份实际磁盘上的数据即可自定义,可以修改分区的大小,可以控制备份的类容,可以定期备份对目的盘大小无限制,比较灵活
缺点:人为修改东西比较多,需要手动去修改一些信息当然在掌握了一定的linux基础的情况下建议是使用tar方式的,,下面将介绍tar方式的处理方式:
给准备用来备份的磁盘进行分区和格式化首先使用 df -h 来检查当前的挂载的系统分区:
12345Filesystem Size Used Avail Use% Mounted on/dev/sdb5 285G ...
linux下的软件包在有网络的情况下比较好安装,在ubuntu下,更新sourcelist,然后使用apt-get就可以很方便的安装包,在centos下面,更新yum列表,然后使用yum也可以进行方便的软件安装,但是在没有网络的情况下就比较难安装,可以用一个个包的安装的方式去安装,这个在少量的包的情况下比较好处理,在多的情况下就比较麻烦了,本篇文档,就是介绍了在无网的情况下,根据自己的需要制作内网的包的安装服务器
centos系列使用光驱作为安装源1、将光驱挂载到服务器的本地目录
12[root@node1 ~]# mount /dev/cdrom /mntmount: block device /dev/sr0 is write-protected, mounting read-only
2、修改本地的yum源文件,将源指向光驱挂载的目录
1vim /etc/yum.repos.d/myiso.repo
1234567添加[myiso]name=myisobaseurl=file:///mntgpgcheck=0enabled=1gpgkey=file:///etc/pki/rpm- ...