背景ceph通过radosgw对外提供了s3功能,这个能够提供一个s3接口供外部使用,s3的功能选项很多,本篇记录的是policy的功能配置
配置方法配置policy可以通过s3cmd,或者windows的s3客户端都可以,这里我们使用s3cmd进行配置
安装配置s3cmd下载客户端
1[root@lab101 ceph]# yum install s3cmd
配置s3cmd
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152[root@lab101 ceph]# s3cmd --configureEnter new values or accept defaults in brackets with Enter.Refer to user manual for detailed description of all options.Access key and Secret key are your identifiers for Amazon ...
背景最近看到opencloudos社区有一些公开的任务可以做,尝试了做其中的一个打包的任务,整个任务的执行周期超过预期,但是中间还是掌握了一些新的东西本篇文章就是总结这些新的知识点
具体过程打包环境问题以前的打包经验是从官网找到source的rpm包,然后本地解压,然后对着spec文件进行rpmbuild -bb即可生成当前系统的包但是这个环境是需要使用mock跑一遍的,这个之前确实没接触过,只是在centos下包的时候,某些包的下载链接有koji这个地址的这个是一套完整的环境
我们看下这个地方是怎么运行的
12345678910111213141516171819202122232425262728293031[root@myserver ~]# cat mock.cfg# Auto-generated by the Koji build systemconfig_opts['basedir'] = '/var/lib/mock'config_opts['chroot_setup_cmd'] = 'groupins ...
存储相关
未读背景如果一个环境需要对文件系统进行系统备份,文件系统内的文件数目是10亿级别的,那么直接通过一个rsync进行同步肯定是不太好的,如果出现中断,那么再次启动后的遍历的时间成本太高了
分析rsync的同步原理是,启动同步的时候,会对源端进行一个全量的扫描,构建一个incremental file list,然后开始同步,如果是系统本地的目录进行同步我们可以看到三个进程一个是生成器,一个是发送方,一个是接收方,因为是在一台机器上面运行,所以可以看到这三个进程的,这个之前还误以为是并发三,实际还是单进程模式的
我们很多情况下,存储环境都是集群模式的,集群模式就是文件系统有多个入口,可以多个并发同时去操作,比如我们原始集群有2个网关,我们新集群有6个网关,那么我们实际上是可以1个原始网关对3个新网关的方式去处理数据的
由于我们无法去判断原始的目录结构,并且即使能够获取到,也不太好去做均分,比如有6亿文件,根目录下面一个目录5亿,其它5个目录1亿,这种情况就不好去分平分目录了,还有个情况是如果按容量区分,也是不太好取到怎么去区分目录的,所以这个地方想到的一个方案是获取到所有的文件的列表,然后对列 ...
问题处理
未读背景最近有碰到扇区的错误,引起osd的无法启动,经过处理,系统可以恢复了,但是扇区的错误为什么导致了osd down,怎么去模拟这个删除的问题,就需要做一些定位的工作了
我们需要模拟扇区的问题,就需要去精确的模拟到损坏的扇区,也就是比如我需要模拟某个文件的扇区损坏,那么就需要定位到这个文件属于哪些扇区
方法定位扇区通过blktrace进行模拟,这个操作是去读取文件就行,”C”是完成的请求,下面是过滤的,避免太多其它信息干扰
对磁盘的文件进行读取的请求
1blktrace -d /dev/sdb -o - | blkparse -i - | awk '$6 == "C" {print $1, $2, $6, $7, $8, $9, $10}'
输出类似下面的信息
123456788,80 8 C R 17152 + 5128,80 8 C R 17664 + 5128,80 8 C R 18176 + 5128,80 8 C R 18688 + 5128,80 8 C R 19200 + 5128,80 8 C R 19712 ...
系统服务
未读需求背景线上的项目有使用lvs作为端口转发,使用的是udp的端口转发服务,想在测试环境下面模拟一个高并发的udp的服务器和客户端的环境,现成的没有相关的软件,那么就用两个脚本进行实现
要实现这个服务,需要准备一个服务端的脚本,和客户端的脚本,服务端使用用本地文件对外提供服务,客户端请求数据流并保存到本地
需求分析考虑高并发,所以需要对软件进行一下限速,然后尽量高的并发的,一个端口响应一个请求,并发的取读取udp的请求
需求实现python实现这个实现是最开始实现的一个版本,服务端和客户端都采用的python的,一个python进程启动20个端口,然后并发启动进程,这个发现一个问题,因为python的进程占用cpu很容易100%,这个对系统的资源有点大,造成无法处理很大的并发,客户端也是,这个如果小批量的测试还是可以的,也记录下
服务端实现123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676 ...
需求rbd是ceph的块接口,我们可以把设备map到服务器上面,然后当磁盘进行访问,有的软件能够基于块设备再做上层的高可用的写入的,所以,从软件来说,同一个设备在两台机器同时挂载,没有什么问题,但是如果应用层不加锁,随意的写入就可能破坏了数据,造成磁盘无法访问,那么这里就是利用ceph本身的功能来实现排它的挂载
也就是同一时刻,同一个rbd,只能被一个设备挂载
配置查看rbd的属性
123456789[root@lab101 ~]# rbd info gamebaserbd image 'gamebase': size 30 GiB in 7680 objects order 22 (4 MiB objects) snapshot_count: 1 id: 5e6552f9f0e2 block_name_prefix: rbd_data.5e6552f9f0e2 format: 2 features: layering, exclusive-lock, object-map, fast-diff
我们进行挂载测试
123456789101112[root@l ...
需求之前利用傲梅轻松备份这个软件做过系统复制,这个是需要运行在windows下面的,可以利用winpe运行,然后进行系统复制,需要手动点击操作,而在需要自动化的场景,这个就不太适合了,那么有一款软件Clonezilla,这个复制的系统启动正常
使用方式官方提供了iso的和zip文件的两种方式的,iso的可以直接启动的,然后进行系统的复制,而zip里面包括一个完整的系统,可以在ipxe环境下使用,本篇就记录这个ipxe下的使用
配置方法下载解压得到启动文件
12345[root@pxe101 nbi_img]# unzip -j clonezilla-live-3.1.2-22-amd64.zip live/vmlinuz live/initrd.img live/filesystem.squashfs -d ./Archive: clonezilla-live-3.1.2-22-amd64.zip inflating: ./initrd.img inflating: ./filesystem.squashfs inflating: ./vmlinuz
完整的系统已经在里面了 ...
背景rbd的做快照,然后克隆,原始设备可以变成两个设备供客户端使用,占用的空间为1份,这个是在没有新写入情况下的容量占用情况那么如果有新写入的的数据之后,这个地方容量是怎么去看的,以及在出现写入又删除的情况下,rbd的实际占用空间又是如何释放的
相关测试操作快照后的容量占用我们先准备一个rbd的设备,并且格式化为ntfs的文件系统,然后写入一个大文件为2.4G的我们看下容量占用情况
12345678[root@lab101 ~]# rbd du gamebaseNAME PROVISIONED USEDgamebase 30 GiB 2.4 GiB[root@lab101 ~]# ceph df--- POOLS ---POOL ID PGS STORED OBJECTS USED %USED MAX AVAILrbd 9 32 2.4 GiB 631 2.4 GiB 3.22 73 GiB
占用就是这么多,我们再做一个快照
12[root@lab101 ~]# rbd snap create --im ...
背景网上有很多的winpe,有的时候确实方便,但是又怕里面放入了一些第三方的软件什么的,想要一个自定使用的纯净版的iso,本篇就是自己打的iso
方法12下载地址https://learn.microsoft.com/zh-cn/windows-hardware/get-started/adk-install
选择版本2004
下载链接
12https://go.microsoft.com/fwlink/?linkid=2120254https://go.microsoft.com/fwlink/?linkid=2120253
安装的是ADK2004 版本
这个版本的winpe 在vmware下面进行安装的时候驱动会正常一些注意如果需要安装的系统是中文版本的,那么winpe一定要是中文版本的,否则会提示驱动无法安装
定制winpe
运行这个部署和映像工具环境,就会打开一个终端主要操作目录在这个下面
1C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation ...
问题背景lvmetad是操作系统上面的lvm的缓存服务,基本上所有的操作系统上面都有,我们使用的操作系统版本为
12345678[root@node232 ~]# lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarchDistributor ID: CentOSDescription: CentOS Linux release 7.6.1810 (Core) Release: 7.6.1810Codename: Core[root@node232 ~]# uname -aLinux node232 4.14.113-1.el7.x86_64 #1 SMP Wed Sep 9 17:22:41 CST 2020 x86_64 x86_64 x86_64 GNU/Linux
lvm版本为
123[root@node232 ~]# rpm -qa|grep lvmlvm2-libs-2.02.180-8.el7.x86_64lvm2-2.02.180-8.el7.x86_64
如果环境为上面 ...