自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (3)
  • 收藏
  • 关注

原创 ceph-创建使用rule-ssd规则的存储池

luminous版本的ceph新增了一个功能crush class,这个功能又可以称为磁盘智能分组。因为这个功能就是根据磁盘类型自动的进行属性的关联,然后进行分类。无需手动修改crushmap,极大的减少了人为的操作。以前的操作有多麻烦可以看看:ceph crushmapceph中的每个osd设备都可以选择一个class类型与之关联,默认情况下,在创建osd的时候会自动识别设备类型,然后设置该设备为相应的类。通常有三种class类型:hdd,ssd,nvme。由于当前实验环境下没有ssd和nvme设备,

2022-04-07 17:49:12 4379

原创 git常规操作

git删除本地和远程分支删除本地分支 git branch -d branch_name删除远程分支 git push origin --delete branch_namegit查看分支查看本地分支 git branch查看远程分支 git branch -r查看所有分支 git branch -a

2022-03-16 16:29:47 681

原创 ceph-volume源码分析(五)

ceph-volume inventory

2022-01-24 10:10:38 747

原创 Python打印当前函数调用栈的两种方法

在Python中,如果代码调用层次比较深,或者类比较多,需要查看当前函数调用情况,该怎么办呢?有以下两种常用方法:1. 使用pdb导入pdb模块在代码里需要调试的地方放一个pdb.set_trace(),就可以设置一个断点程序会在pdb.set_trace()暂停并进入pdb调试环境 进入pdb环境后,输入w即可查看当前堆栈2. 使用traceback导入traceback模块在代码里需要调试的地方放一个traceback.print_stack()...

2022-01-24 08:54:26 13813

原创 Postman常用功能操作

postman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使 用简单且易用性好 。下面从以下几个方面介绍Postman的常用基础功能。常见类型的接口请求接口响应数据的解析接口管理(Collection)批量执行接口请求日志调试断言变量请求前置脚本接口关联常见的返回值获取界面导航...

2022-01-14 10:01:25 10547

原创 ceph-volume源码分析(四)

上一篇文章讲到self.mian最后调用terminal.dispatch(self.mapper, subcommand_args),我们先看下该函数实现:def dispatch(mapper, argv=None): argv = argv or sys.argv for count, arg in enumerate(argv, 1): if arg in mapper.keys(): instance = mapper.get(arg)(a

2022-01-08 11:00:07 524

原创 ceph-volume源码分析(三)

上一篇文章我们找到了ceph-volume的函数入口,接下来我们先看下ceph_volume模块下main.py中的Volume,如下图所示:class Volume(object): _help = """ceph-volume: Deploy Ceph OSDs using different device technologies like lvm orphysical disks.Log Path: {log_path}Ceph Conf: {ceph_path}{sub_h

2022-01-06 08:35:16 1478

原创 ceph-volume源码分析(二)

第一篇文章对ceph-volume进行了一个基本介绍,从这篇文章开始,打算结合一些具体的操作分析代码流程和实现。 首先我们在cli查看ceph-volume命令,如下图所示:

2022-01-04 15:16:18 1507

原创 ceph-volume源码分析(一)

ceph-volume源码分析(一) 在接触ceph的过程中,用到了ceph-volume这个部署OSD的社区工具,就想着利用闲暇时间看下源码实现,一方面自己很久没有写过东西了,利用看源码的过程熟悉下python语言,同时学习下社区大佬的编程思路和风格。 废话不多说,先上官方介绍文档地址:[官方链接地址](https://docs.ceph.com/en/latest/man/8/ceph-volume/) 通过官方介绍文档我们可以看到ceph-volume是社区用来替代ceph-disk

2022-01-02 17:20:06 1096

原创 本地更新yum源步骤

这里写自定义目录标题更新本地yum源查找本地yum源位置更新RPM包创建新的repo文件夹更新yum源更新本地yum源查找本地yum源位置通过yum repolist可以查看本地yum源列表对应yum源的配置文件在/etc/yum.repos.d目录下,通过对应的配置文件可以查看yum源在本机的具体位置。查看对应yum源目录下文件列表可以看到各个rpm包和一个repodata文件夹,这个文件夹中的repomd.xml文件就是记录yum源文件依赖关系的,更新yum源的主要工作就是更新依赖关系。更新

2021-12-27 17:22:11 14987

原创 Ceph常用命令

容量统计rbd diff例子:如果要查看一个卷的使用统计信息,可以使用以下命令rbd diff volume |awk '{ SUM += $2 } END { print SUM/1024/1024 " MB" }'rbd durbdduimage01-prbd其中image01为卷名, -p rbd指定在rbd存储池下查询性能统计..................

2021-12-22 15:57:00 874

原创 SSD硬盘寿命估算

衡量固态硬盘寿命业内通常有两个指标,一个是DWPD(Drive Writes Per Day),另一个是TBW(Total Bytes Written),这两个数据指标在产品规格书里都会有写DWPD(Drive Writes Per Day):每日整盘写入次数,指在预期寿命内可每日完整写入SSD固态硬盘所有容量的次数。TBW(Terabytes Written):写入的兆兆字节,也有定义TBW为Total Bytes Written,指SSD在设计寿命里能承受的总写入数据量。TBW的定义和条件.

2021-12-17 09:54:59 4879

原创 Confluence 常见问题及解决方法

1. 页面中插入的word文档预览时显示空格问题原因: 在服务器上没有安装对应的微软的字体解决方法: 把windows上的字体上传到confluence所在服务器上的某个目录,然后在confluence启动目录下的setenv.sh里边进行配置,找到CATALINA_OPTS,添加如下一行,其中fontpath为字体所在目录CATALINA_OPTS="-Dconfluence.document.conversion.fontpath=/usr/share/fonts/msttcore/ ${

2021-12-16 10:57:21 5533 1

原创 iscsiadm命令基本用法

发现目标iscsiadm -m discovery -t sendtargets -p 192.168.1.1:3260-m discovery 指定模式为discovery-p 192.168.1.1:3260 指定目标ip和端口登入节点iscsiadm -m node –T iqn.1997-05.com.test:raid -p 192.168.1.1:3260 -l系统启动时自动登入iscsiadm -m node –T iqn.1997-05.com.test:raid -p 192.16

2021-12-01 11:15:29 12590

原创 CEPH 更换OSD故障硬盘

替换硬盘把 OSD 踢出集群ceph osd out osd.xx停止osd服务systemctl stop ceph-osd@xx删除OSDL版本之前#在monitor上操作ceph osd crush remove osd.xxceph auth del osd.xxceph osd rm osd.xxL版本开始ceph osd purge osd.xx --yes-i-really-mean-it卸载磁盘umount /var/lib/ceph/osd/ceph-xx .

2021-11-25 14:47:45 1073

转载 手动解决ceph中pg不平衡

ceph的crush算法是个好东西,能够实现对象读写位置的计算,诶,最大的问题是,pg分布怎么如此不均衡问题的出现在实际使用ceph的过程中,我们经常会遇到这样的问题,创建了pool之后,ceph osd df会看到这些pool的pg在osd上分布不均匀,甚至相差很大,尤其是像rbd-pool或者rgw-data这样的数据pool,相差十几几十个pg,在集群用到80%以上时会出现让我们十分头疼的问题,就是部分osd已经到了nearfull,但是部分osd只用了60%解决这个问题的有效办法就是在集

2021-09-14 16:13:31 2370

原创 快速查询RBD卷容量使用方法

1.RBD容量使用查询使用rbd du命令查询RBD卷使用容量,如下图所示:我们可以看到查询速度较慢,同时命令行有相关提示,这是因为fast-diff特性没有开启,我们查看下RBD卷属性,如下所示:我们可以看到RBD卷默认只开启了layering2. 开启RBD相关属性开启fast-diff 需要开启exclusive-lock和object-map属性,依次手动开启即可再次查看卷属性可以看到相关属性已经打开,再次查看RBD使用容量发现和之前一样,这是因为我们是卷创...

2021-07-23 11:56:20 2017

原创 配置FIO支持RBD测试

fio的rbd测试引擎可以很方便的对ceph rbd进行测试,在使用源码安装时配置步骤如下:1. 下载fio源码文件https://gitee.com/xasz1129/fio/releases2. 解压缩zip文件后进入到fio目录3. 运行./configure,输出如下:$ ./configure [...]Rados engine noRados Block Device engine no这个时候默认是不支持RBD的...

2021-07-20 14:14:59 1242

原创 pyinstall打包python程序出现报错:jinja2.exceptions.TemplateNotFound: chart_component.html的解决办法

1. echo 命令注意事项三种常用用法(1) 不加引号

2021-07-16 17:10:50 1992

转载 日志文件系统工作原理

文件系统要解决的一个关键问题是怎样防止掉电或系统崩溃造成数据损坏,在此类意外事件中,导致文件系统损坏的根本原因在于写文件不是原子操作,因为写文件涉及的不仅仅是用户数据,还涉及元数据(metadata)包括 Superblock、inode bitmap、inode、data block bitmap等,所以写操作无法一步完成,如果其中任何一个步骤被打断,就会造成数据的不一致或损坏。举一个简化的例子,我们对一个文件进行写操作,要涉及以下步骤:从data block bitmap中分配一个数据块; 在in

2021-05-17 10:43:50 1435 1

原创 CentOS 7常用设置

设置hostnamehostnamectl set-hostname myname查询开机启动模式systemctl get-defaultgraphical.target代表开机时启动图形化界面multi-user.target代表开机时启动dos界面设置开机启动图形界面systemctl set-default graphical.target 设置开机启动命令行...

2020-03-10 15:37:58 167

原创 sublime同时使用Python2和Python3

在实际工作和编码中,经常要在Python2和Python3进行切换,对于大部分初学者而言,sublime足够满足日常需要,设置方法如下(以已安装Python2为例):新建python的编译系统:sublime工具栏上,点击工具->编译系统->新编译系统复制粘贴以下代码粘贴,(C:/Python3/python3.exe)是我的安装目录{ "cmd": ["C:/...

2018-09-05 20:41:05 2694

原创 爬虫学习笔记一

Robots协议是什么?(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够

2017-03-01 14:42:44 1120

转载 python实现的控制台进度条

相信很多人在写一些简单的python脚本的时候都希望能够在程序运行的过程中实现进度条的功能以便查看程序运行的速度或者进度。我之前一直想实现这样一个东西,也查看了许多博客但是都找不到一个完美的解决方案(当然,使用progressBar这个库是个选择,但很多时候我们需要一些定制功能的时候就需要考虑自己实现,其实也挺简单的,不想看废话的可以直接跳到最后)进度条最主要的问题就是所有字符全部在同一行...

2015-12-28 10:39:16 3067

原创 Windows下安装python 包管理器pip

pip是一款非常方便的python包管理工具,本文主要介绍在windows 7下安装pip方法。1. 下载pip安装包地址:https://pypi.python.org/pypi/pip#download注意选择tar.gz包,目前最新版本:    pip-7.1.2.tar.gz (md5, pgp) 2. 解压安装包,使用CMD进入解压目录,然后使用如下命令进行安装 

2015-10-20 09:21:57 2230

原创 设置python 命令行交互程序自动补齐

1. 新建Python环境变量配置文件:vim ~/.pystartup# Add auto-completion and a stored history file of commands to your Python# interactive interpreter. Requires Python 2.0+, readline. Autocomplete is#

2015-07-07 17:26:52 2066

原创 vim中注释多行python代码

在vim中注释多行python代码比较麻烦,主要由以下几种方法:(1)将需要注释的代码以文档字符串的形式呈现(2)将需要注释的代码以函数的形式呈现(3)使用vim自身快捷键我们主要使用第三种方式,下面是注释和取消注释的方法。1.多行注释:  1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;  2. 在行首使用上下键选择需

2015-07-07 16:39:33 5704

原创 PyQT开发的简易有道词典

最近学习PyQt,写了一个比较简单的字典,使用了有道翻译OpenAPI,下面是代码:# -*- coding: utf-8 -*-__author__ = 'Cullen'import urllibimport jsonimport urllib2from PyQt4 import QtGui, QtCoreimport sysAPI_KEY = '13

2015-07-05 12:17:11 1532

原创 Linux下清理内存和Cache方法

Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches频繁的文件访问会导致系统的Cache使用量大增$ free -mtotal used free shared buffers cachedMem: 3955 3926 28 0 55 3459-/+ buffers/cache: 411 3544Swap: 5726 0 5726

2015-07-01 08:58:01 1656

转载 sed基础知识

在linux下面,awk和sed是比较方便的文本处理工具,下面主要介绍下sed的一些基本用法。用s命令替换我使用下面的这段文本做演示:123456789$cat pets.txtThis is my cat  mycat's n

2015-06-27 15:38:12 724

原创 Python 命令行参数和getopt模块详解

有时候我们需要写一些脚本处理一些任务,这时候往往需要提供一些命令行参数,根据不同参数进行不同的处理,在Python里,命令行的参数和C语言很类似(因为标准Python是用C语言实现的)。在C语言里,main函数的原型为int main(int argc, char **argv),这里主要指linux平台, argc指的是命令行传入的参数个数(程序的name为第一个参数),而argv则是一个指针数

2014-03-16 14:31:06 3875

原创 Python Tkinter实现的linux命令帮助手册

由于一些工作环境无法上网,而且需要经常使用linux命令,但是如果对linux命令不熟悉,效率就会很低。正好最近在学习tkinter,就自己写一个linux帮助手册,既熟悉命令,又练习python,下面是源代码:# -*- coding:utf-8 -*-__author__ = 'Cullen'from Tkinter import *from PIL import Im

2014-02-22 11:59:11 5088 1

原创 Python Tkinter简易计算器

今天闲暇时间用tkinter写了个简易计算器,可实现简单的加减乘除运算,用了Button和Entry2个控件,下面是代码,只是简单的用了偏函数partial,因为那么多button的大部分参数都是一样的,使用偏函数可以简化参数传递,避免同样的参数传递写N次。# -*- coding: utf-8 -*-#author: Cullen#import the modulefrom

2014-02-19 08:16:13 15845

原创 Python Tkinter实现的WIN7电脑端共享WIFI热点(二)

前面写了一个简单的管理电脑创建的WIFI热点的工具,整体比较简单,只是由一个图片,和2个button,还有一个MessageBox组成,这两天又完善了下,主要更新了以下几个方面:1.使用类来编写代码(由于自己基本还是面向过程思想,有必要学习下类的基本写法)2.将版本1中的MessageBox改为由ListBox和Scrollbar组成的frame,这样信息可以一直显示在listbox里面。

2014-02-18 08:21:50 4107 1

原创 Python Tkinter实现的WIN7电脑端共享WIFI热点(一)

有时候我们受限于环境,需要把笔记本当做热点使用,这就需要利用笔记本的无线网卡进行设置,详细步骤可以参考下面的链接或者从网络上搜索设置方法。点击打开链接按上面设置完毕后,有一个问题就是每次都需要在命令行输入netsh wlan start hostednetwork /netsh wlan stop hostednetwork去开启/关闭之前设置好的无线网络,比较麻烦,下面是

2014-02-15 15:46:42 4746 1

原创 linux编程实践4(实现ls -l命令)

#include#include#include#include#include#include#include#include#includevoid do_ls(char *);void do_stat(char *);void show_file_info(char *, struct stat *);void transfer_mode(mode_t, char

2014-01-19 11:22:38 1098

原创 linux编程实践3(实现who命令)

下面是简单实现linux下who命令的代码,主要就是从utmp这个文件中读取和用户登录相关的信息,并显示出来。

2014-01-13 13:19:19 975

原创 linux编程实践2(实现more命令)

#include#include#include#include#define PAGELEN 24#define LINELEN 512void do_more(FILE *);int see_more(FILE *);int main(int argc, char **argv){    FILE *fp;    if(argc == 1

2014-01-08 21:02:34 1198 3

原创 深入Python(Dive Into Python)第五章程序解析

在看Dive Info Python这本书,发现第五章的程序一下没看明白,就仔细的看了下,将自己的代码分析贴上来,不足之处请多多指教!下面是代码:"""Framework for getting filetype-specific metadata.Instantiate appropriate class with filename. Returned object acts

2013-12-10 16:17:52 1389

原创 自动备份mysql数据库 shell脚本

最近使用了testlink和mantis这2个测试相关的系统,而他们又全部是基于mysql+php开发的,因此定期备份数据库也是很有必要的,下面是自己写的一个简单的shell脚本。我的mysql是通过xampp这个套件安装的,因为这个套件可以一起安装testlink和mantis需要的php+apache环境。下面附上脚本,不足之处,请指出,谢谢!#!/bin/bash#this scr

2013-11-25 14:58:37 2000

BashPragramming.pdf

Bash脚本学习宝典,简单易懂,章节丰富,包含基本bash知识,适合快速上手

2019-10-07

管理WIFI程序(版本2)

针对上一个版本的改进,详情见版本一。不足之处请指出,谢谢!

2014-02-17

管理WIFI程序

有时候我们受限于环境,需要把笔记本当做热点使用,这就需要利用笔记本的无线网卡进行设置,详细步骤可以参考网络上d的方法。 按上面设置完毕后,有一个问题就是每次都需要在命令行输入netsh wlan start hostednetwork /netsh wlan stop hostednetwork去开启/关闭之前设置好的无线网络,比较麻烦,下面是简单用python写了一个开启和关闭无线网络的程序,不足之处请大家多多指教,谢谢!

2014-02-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除