- 博客(31)
- 收藏
- 关注
原创 cmake实用教程
CMake入门实践深入浅出CMake(一):基础篇深入浅出CMake(二):基础语法及实现九九乘法表深入浅出CMake(三):find_package 添加依赖库深入浅出CMake(四):配置多线程CMake Tutorial...
2020-01-20 15:51:18
269
原创 CentOS 7.6 源码编译安装Ceph
1. 从github下载ceph项目及其子项目源码git clone https://github.com/ceph/ceph.gitgit submodule update --init --recursive2.配置好国内yum源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bac...
2019-12-27 11:06:12
5968
翻译 ALUA
原文链接:http://www.pearsonitcertification.com/articles/article.aspx?p=2819032本文节选自《Storage Design and Implementation in vSphere 6: A TechnologyDeep Dive, 2nd Edition 》一书,帮助大家了解如何区分各种ALUA(Asymmetric Logic...
2018-06-05 22:13:18
5276
转载 ErrorRecovery 之任务重置
在 Initiator 处理一个任务时,任务未完成,但中间数据有误了(如 CRC 失败),可以通过任务重置来本 connection 上的该任务分配置到一个新的 connection 中,然后继续完成乘下的数据,免得整个任务重新执行。任务重置属于commond recovery,涉及到多 connection。 将一个 command 重新分配到一个 connection 上时,targe...
2018-03-15 10:18:35
701
转载 iSCSI 中 SCSI 读写请求处理分析
iSCSI Initiator 是通过 SCSI Command PDU 向 Target 发出 SCSI 请求,Target 接收请求,执行 SCSI 命令,然后返回数据以及 SCSI 状态。在 SCSI 任务执行时,Initiator/Target 之间会涉及大量数据 I/O。RFC3720 中对这些 I/O 的组织有特别的规定,以下结合 RFC3720, 分析一下 iSCSI 中对 SCS...
2018-03-15 10:04:11
3466
转载 iSCSI 几个关键字的协商与实现
ErrorRecoveryLevel错误恢复级别, 目前好像只有微软 Initiator/Target 能支持 ERL=2 级,其它的都是 0,至少我没遇到过。MaxConnections准确来说应该时单个 Session 内最大连接数, 也就是允许单个Session内部最大能建几个Connection(MC/s)。InitialR2T 是否允许非请求类数据(unsolicited)。No 表求...
2018-03-15 09:46:40
2018
原创 iSCSI session和connection的状态划分及登陆登出
iSCSI 连接(Connection)状态对于connection,有两种状态:login phase(登陆状态):登陆状态即 iSCSI initiator 与 iSCSI target 正处于登陆协商过程;full function phase(全功能状态):全功能状态即登陆过程已经完成,该 connection 已经能为上层 SCSI 提供服务。iSCSI 会话(Session)状态Ses...
2018-03-13 17:37:33
4385
翻译 什么是 iSCSI 连接(Connection)和会话(Session)
Network Portal: 网络端口。网络实体的一个组成部分,它有一个 TCP/IP 地址。 网络端口在 initiator 用 IP 地址标识, 在 target 用 IP 地址+侦听的 TCP 端口标识。Session: 连接 initiator 和 target 的一组 TCP 连接构成一个 session(可以简单理解为 I_T nexus)。可以向 session 添加 TCP 连接...
2018-03-13 15:51:04
3302
转载 iSCSI协议中的流量控制和命令的可靠性的机制
iSCSI 设备是支持使用者同时向 iSCSI 设备发送多个请求,如同时发送多个读请求,也就是,当第一个读请求还没有返回时,可以同时发送第二个读请求。 由于可以同时发送多个请求,而请求包中包装的 SCSI 命令,而 SCSI 命令是有顺序的,所以需要有一个序号来表示这个顺序。同时一下子发送太多的请求,也有可能把 iSCSI Target 端压跨。所以 iSCSI 协议设计了使用序号来控制命令的顺序...
2018-03-07 15:10:07
1141
原创 centos 7.3中使能blk-mq
scsi-mqRHEL7.2 release note使能scsi-mq添加scsi_mod.use_blk_mq=y到内核命令行:(也可以添加dm_mod.use_blk_mq=y来使能blk-mq)1234567891011$ cat /etc/default/grub GRUB_TIMEOUT=5GRUB_
2017-08-08 10:46:31
2187
原创 IDE/SCSI/VIRTIO区别
IDE - Slow Write in the Guest System SCSI - Faster Write(as IDE) in Guest System VIRTIO - Fastest Write (more that SCSI and IDE) in the Guest System, but only with extra Drivers (In Guest)
2017-06-14 14:16:03
6871
原创 Libvirt之event loop(一)
Libvirt之event loopEvent driven programmingThe event loop APIWorker pool本文主要讲述 libvirt 所使用的 event loop 方法,以及 server 端和 client 端如何通过 event loop 交互。event驱动的程序一般,一个程序只 run 一次并终止,这种类型的程序很常见,尤其是在小型程序中,但是
2017-06-13 10:54:10
2664
1
原创 nova热快照关键流程解析
Nova snapshot 目前只提供一种创造系统盘镜像的方法,不支持内存快照,不支持回滚至快照点,只能采用该快照镜像创建一个新的虚拟机。也就是对当前的系统盘做一个快照生成 qcow2 格式的文件,然后上传到 glance 里面,其作用也往往是方便使用快照生成的镜像来部署新的虚机。而Live Snapshot 则允许用户在虚机处于运行状态时不停机做快照。下面我们通过pdb调试工
2016-10-12 16:16:07
2611
原创 XFS根分区无法挂载的解决办法
最近线上碰到的一个XFS根分区无法挂载导致无法开机的问题 因为系统无法开机,首先想到的是先把系统启起来,所以打算从管理口挂载光盘,从光盘启动: 启动后选择“1”,将文件系统挂载到/mnt/sysimage 执行# chroot /mnt/sysimage根分区一直处于挂载中,但始终挂载不上去,挂载进程处于D僵死状态,无法杀死,看了一下进程的调用栈,一直处于xfs_buf_iowait()
2016-06-21 16:09:46
19242
2
原创 自动精简配置(Thin provisioning )介绍
自动精简配置(Thin provisioning )介绍自动精简配置,有时也被称为”超额申请“,是一中重要的新兴存储技术。本文定义了自动精简配置,并介绍它的工作原理、使用局限和一些使用建议。如果应用程序所使用的存储空间已满,就会崩溃。因此,存储管理员通常分配比应用程序实际需要的存储空间更大的存储容量,以避免任何潜在的应用程序故障。这种做法为未来的增长提供了“headroom”(净空),并减少了应用程
2016-06-17 17:53:54
22263
2
原创 技术预览:CentOS 7中利用Snapper GUI管理系统快照
技术预览:BCLinux7中利用Snapper GUI管理系统快照Snapper-gui是snapper的界面化管理工具,支持btrfs, ext4和精简LVM,因其目前尚在开发阶段,很多功能尚不完善,这里仅作为技术预览做简单介绍。
2016-06-16 16:08:36
3010
1
原创 CentOS 7中利用Snapper快照进行系统备份与恢复
为什么要使用Snapper快照?我们可以想像以下场景: 1. 场景一:系统发生意外宕机,工程师无法快速定位问题,业务受到中断,客户十分不满意。 2. 场景二:项目会议上,就是否升级某软件到最新版本,A和B争执不断,A认为为了保持与其他软件的兼容性不能轻易升级,B认为升级能充分利用软件包的最新功能以及享受到新版本性能的提升 3. 场景三:数据库突然无法访问了,导致业务中断,工程师A和B因为追究责
2016-06-16 16:01:23
34275
原创 XFS参数优化及测试
(一)测试环境硬件环境Inspur NF5270M3, CPU E5-2650 v2@2.60GHz(2Sockect * 8Core * 2HT) 8 * 16GB of DDR3@1.33G RAM (NUMA) ASPEED Graphics Family (rev 21)(used in text-only mode) HGST HUS724030ALA640 7200 RPM 2.
2016-01-05 19:46:10
10776
原创 EXT4参数优化及测试
(一)测试环境硬件环境Inspur NF5270M3, CPU E5-2650 v2@2.60GHz(2Sockect * 8Core * 2HT) 8 * 16GB of DDR3@1.33G RAM (NUMA) ASPEED Graphics Family (rev 21)(used in text-only mode) HGST HUS724030ALA640 7200 RPM 2.
2016-01-05 19:40:57
14683
原创 XFS导致进程内核栈溢出的解决办法
XFS导致进程内核栈溢出的解决办法系统环境系统版本: CentOS release 6.5kenel版本:2.6.32-431.20.3.el6.x86_64文件系统: XFS问题描述系统panic,并打印以下calltrace信息: 错误跟踪unable to handle kernel paging request at 00000000dd7ed3a0 00000000dd7e
2016-01-05 19:09:40
4535
原创 【u-boot】device tree访问重要函数--增删改查
增加:fdt_create_phandle() 增加phandle节点fdt_add_subnode() 增加子节点删除:fdt_del_node()fdt_del_node_and_alias()fdt_del_node()修改:do_fixup_by_prop_u32() 修改属性值do_fixup_by_compat
2015-01-28 15:17:44
4338
原创 Write error: No space left on device-解决办法
利用ramdisk方式启动后,想解压一个文件,但是系统提示空间不足。root@t1040rdb:~# xz -d linux-3.19-rc5.tar.xzxz: linux-3.19-rc5.tar: Write error: No space left on device分析了一下原因,大约是ramdisk预留的空间不足,所以我就想换成nfsroot的方式启动。
2015-01-21 11:39:57
44552
1
原创 RAMDISK: incomplete write-解决办法
boot过程中系统hang住了。RAMDISK: incomplete write (15544 != 32768)write errorVFS: Mounted root (ext2 filesystem) on device 1:0.devtmpfs: mountedFreeing unused kernel memory: 356K (c000000000ab1000 - c0000
2015-01-20 16:12:42
15412
2
原创 解决warning 1 line adds whitespace errors.
四种方法:(1)在提交代码时禁止代码检查:git commit --no-verify-a(2)修改pre-commit权限,禁止其执行检查cd .git/hooks/chmod -x pre-commit.sample(3)恢复core.whitespace为默认选项git config --global core.whitespace "trailing
2014-06-17 14:57:10
9002
原创 CFS完全公平调度算法 - per entity load tracking 几个重要的函数分析
kernel/sched/fair.c ############## 负载衰减计算函数decay_load() ####################/* * We choose a half-life close to 1 scheduling period. * Note: The tables below are dependent on this valu
2014-06-11 17:54:05
4753
3
原创 【linux】非实时进程,实时进程, 优先级
最近在看《深入理解Linux内核》进程调度,以前一些混淆的有关进程调度的概念也渐渐清晰起来,特此记录下来算是进程调度的开篇,本文不涉及代码分析。一些内容参考了http://www.cnblogs.com/visayafan/archive/2011/12/08/2280459.html(尊重原作,如有不妥请联系本人)Linux的进程分普通进程和实时进程,普通进程即非实时进程SCHE
2014-06-06 13:46:26
12702
翻译 设备树的用法(Device Tree Usage)
设备树的用法(Device Tree Usage)原文地址:http://www.devicetree.org/Device_Tree_Usage本文概述了如何为一个全新的计算机编写设备树。意在提供一个device tree概念的概述以及如何使用device tree描述一台计算机。有关device tree数据格式的更完整技术说明,读者可以参考ePAPR规范(http://www.pow
2014-05-23 10:25:37
7302
4
原创 利用git制作和提交patch
今天提了一个电源管理的patch,算是一个好的开端吧。写下整个patch提交的过程,为后来人引路。一般在新的系统上,我们都需要先配置下自己的 Git 工作环境。最重要的是配置你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:$ git config --global user.n
2014-05-13 17:43:49
4561
原创 大端小端之我见
最近看资料的过程中,对大端和小段的问题又差点搞糊涂了,今天特意查了资料,总结了本文,读起文档来,又酣畅了不少,所谓胸中有丘壑,自然心中不慌。主要还是以前对大端小端的理解太肤浅,仅限于会解几道题,今天读了几篇博文,发现大端小端还细分为字节序和比特序,这才结了我心中疑惑。1.首先讲一下字节序的规则,先科普一下,字节是计算机存储数据的基本单位,1byte=1B=8bit,废话不多表,进入正题
2014-05-13 17:34:10
1453
原创 如何打开pr_debug调试信息
如何打开pr_debug调试信息以DMA的调试为例,先来看看一个pr_debug函数调用 pr_debug("%s: %s (%s)\n", __func__, chan ? "success" : "fail", chan ? dma_chan_name(chan)
2014-05-08 18:25:23
45590
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人