块设备

OpenStack虚拟机快照和增量备份实现

匿名 (未验证) 提交于 2019-12-03 00:42:01
1 快照的概念 一般对快照的理解就是能够将系统还原到某个瞬间,这就是快照的作用。 快照针对要保存的数据分为内存快照和磁盘快照,内存快照就是保存当前内存的数据,磁盘快照就是保存硬盘的数据。 快照针对保存方式又分为内部快照和外部快照。 内部快照:是指快照信息和虚拟机存在同一个qcow2镜像中,使用单个的 qcow2 的文件来保存快照和快照之后的改动。这种快照是 libvirt 的默认行为,现在的支持很完善(创建、回滚和删除),但是只能针对 qcow2 格式的磁盘镜像文件,而且其过程较慢等。 外部快照:是指做快照时原虚拟机的disk将变为readonly的模板镜像,然后会新建一个qcow2文件来记录与原模板镜像的差异数据,外部快照的结果是形成一个qcow2文件链:original <- snap1 <- snap2 <- snap3 2 主流libvirt快照实现介绍 2.1 libvirt的内部快照操作 以下是利用libvirt的virsh工具来创建一些内置快照: 创建虚拟机快照: virsh snapshot-create-as --name test001 --description ‘ abc ‘ instance- 00000001 列出虚拟机的快照: virsh snapshot-list instance- 00000001 查看某个快照信息: virsh snapshot

使用ceph的块存储rbd

匿名 (未验证) 提交于 2019-12-03 00:22:01
块是一个字节序列(例如,一个 512 字节的数据块)。基于块的存储接口是最常见的存储数据方法,它们基于旋转介质,像硬盘、 CD 、软盘、甚至传统的 9 磁道磁带。无处不在的块设备接口使虚拟块设备成为与 Ceph 这样的海量存储系统交互的理想之选。 Ceph 块设备是精简配置的、大小可调且将数据条带化存储到集群内的多个 OSD 。 Ceph 块设备利用 RADOS 的多种能力,如快照、复制和一致性。 Ceph 的 RADOS 块设备( RBD )使用内核模块或 librbd 库与 OSD 交互。 注意:内核模块可使用 Linux 页缓存。对基于 librbd 的应用程序, Ceph 可提供 RBD 缓存。 Ceph 块设备靠无限伸缩性提供了高性能,如向内核模块、或向 abbr:KVM (kernel virtual machines) (如 Qemu 、 OpenStack 和 CloudStack 等云计算系统通过 libvirt 和 Qemu 可与 Ceph 块设备集成)。 更多信息参考 http://docs.ceph.org.cn/rbd/rbd/ 注意作为client节点也需要安装ceph,否则rbd会报错sudo: rbd: command not found。 需要注意的是client节点需要是ceph集群中的一员,需要有/etc/ceph/ceph.client

eMMC驱动分析

匿名 (未验证) 提交于 2019-12-02 22:56:40
作者:Aningsk ,本作品采用 知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议 基于ATMEL-sama5d3芯片与Linux-3.6.9内核。 SD卡系列简介 这些都是网上找出来的,权当作为开场白了。 MMC卡全称Multi Media Card,由西门子公司和SanDisk公司1997年推出的多媒体记忆卡标准。MMC卡尺寸为32mm x24mm x 1.4mm,它将存贮单元和控制器一同做到了卡上,智能的控制器使得MMC保证兼容性和灵活性。MMC卡具有MMC和SPI两种工作模式,MMC模式是默认工作模式,具有MMC的全部特性。而SPI模式则是MMC协议的一个子集,主要用于低速系统。 SD卡全称Secure Digital Memory Card,由松下、东芝和SanDisk公司于1999年8月共同开发的新一代记忆卡标准,已完全兼容MMC标准。SD卡比MMC卡多了一个进行数据著作权保护的暗号认证功能,读写速度比MMC卡快4倍。尺寸为32mm x 24mm x2.1mm,长宽和MMC卡一样,只是比MMC卡厚了0.7mm,以容纳更大容量的存贮单元。SD卡与MMC卡保持向上兼容,也就是说,MMC卡可以被新的设有SD卡插槽的设备存取,但是SD卡却不可以被设有MMC插槽的设备存取。 SDIO全称Secure Digital Input and Output

linux内核(三)文件系统

匿名 (未验证) 提交于 2019-12-02 21:59:42
1、为什么需要根文件系统 (1)init进程的应用程序在根文件系统上 (2)根文件系统提供了根目录/ (3)内核启动后的应用层配置(etc目录)在根文件系统上。几乎可以认为:发行版=内核+rootfs (4)shell命令程序在根文件系统上。譬如ls、cd等命令 总结:一套linux体系,只有内核本身是不能工作的,必须要rootfs(上的etc目录下的配置文件、/bin /sbin等目录下的shell命令,还有/lib目录下的库文件等・・・)相配合才能工作。 下面是根文件系统顶层目录 根文件系统的实质是什么 (1)根文件系统是特殊用途的文件系统。 (2)根文件系统也必须属于某种文件系统格式。rootfstype= (3)究竟文件系统是用来干嘛的。ZnFAT 首先,存储设备(块设备,像硬盘、flash等)是分块(扇区)的,物理上底层去访问存储设备时是按照块号(扇区号)来访问的。这就很麻烦。 其次, 文件系统是一些代码,是一套软件,这套软件的功能就是对存储设备的扇区进行管理,将这些扇区的访问变成了对目录和文件名的访问 。我们在上层按照特定的目录和文件名去访问一个文件时,文件系统会将这个目录+文件名转换成对扇区号的访问。 最后,不同的文件系统的差异就在于对这些扇区的管理策略和方法不同,譬如坏块管理、碎片管理。 2、根文件系统的形式 2.1镜像文件形式 (1

2.15.2.linux内核源码目录结构2

匿名 (未验证) 提交于 2019-12-02 21:59:42
本节接上节讲解内核源码根目录下的各个文件夹,并且把一些重要文件夹的作用简单讲解。 (1)arch。arch是architecture的缩写,意思是架构。arch目录下是好多个不同架构的CPU的子目录,譬如arm这种cpu的所有文件都在arch/arm目录下,X86的CPU的所有文件都在arch/x86目录下。 (2)block。英文是块的意思,在linux中block表示块设备(以块(多个字节组成的整体,类似于扇区)为单位来整体访问),譬如说SD卡、iNand、Nand、硬盘等都是块设备。你几乎可以认为块设备就是存储设备。block目录下放的是一些linux存储体系中关于块设备管理的代码。 (3)crypto。英文意思是加密。这个目录下放了一些各种常见的加密算法的C语言代码实现。譬如crc32、md5、sha1等。 (4)Documentation。里面放了一些文档。 (5)drivers。驱动目录,里面分门别类的列出了linux内核支持的所有硬件设备的驱动源代码。 (6)firmware。固件。什么是固件?固件其实是软件,不过这个软件是固话到IC里面运行的叫固件。就像S5PV210里的iROM代码。 (7)fs。fs就是file system,文件系统,里面列出了linux支持的各种文件系统的实现。 (8)include。头文件目录,公共的(各种CPU架构共用的)头文件都在这里

Linux vmstat命令实战详解

匿名 (未验证) 提交于 2019-12-02 21:56:30
2019独角兽企业重金招聘Python工程师标准>>> vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。 一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如: 2表示每个两秒采集一次服务器状态,1表示只采集一次。 实际上,在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如: 这表示vmstat每2秒采集数据,一直采集,直到我结束程序,这里采集了5次数据我就结束了程序。 好了,命令介绍完毕,现在开始实战讲解每个参数的意思。 r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙

Linux vmstat命令实战详解

安稳与你 提交于 2019-12-02 03:41:33
http://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.html vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。 一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如: root@ubuntu:~# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo cs us sy id wa 2表示每个两秒采集一次服务器状态,1表示只采集一次。 实际上,在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如: root@ubuntu:~# vmstat procs -----------memory----------

Linux vmstat命令实战详解

不羁的心 提交于 2019-12-02 03:41:20
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。 一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如: root@ubuntu:~# vmstat 2 1 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 3498472 315836 3819540 0 0 0 1 2 0 0 0 100 0 2表示每个两秒采集一次服务器状态,1表示只采集一次。 实际上,在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如: root@ubuntu:~# vmstat 2 procs -----------memory---------- --

150倍加速机械盘,UCloud云主机IO加速技术揭秘

别等时光非礼了梦想. 提交于 2019-12-01 21:07:08
现如今CPU的计算能力和磁盘的访问延迟之间的差距逐渐扩大,使得用户云主机的磁盘IO经常成为严重的性能瓶颈,云计算环境下更加明显。针对机械盘IO性能低下的问题,我们通过自研的云主机IO加速方案,使4K随机写的最高性能由原来的300 IOPS提升至4.5W IOPS,提高了150倍,即用机械盘的成本获得了SSD的性能。13年上线至今,该方案已历经五年的运营实践,并成功应用于全网93%的标准型云主机,覆盖12.7万台实例,总容量达26PB。 一.为什么需要IO加速 传统的机械磁盘在寻址时需要移动磁头到目标位置,移动磁头的操作是机械磁盘性能低下的主要原因,虽然各种系统软件或者IO调度器都致力于减少磁头的移动来提高性能,但大部分场景下只是改善效果。一般,一块SATA机械磁盘只有300左右的4K随机IOPS,对于大多数云主机来说,300的随机IOPS哪怕独享也是不够的,更何况在云计算的场景中,一台物理宿主机上会有多台云主机。因此,必须要有其他的方法来大幅提升IO性能。 早期SSD价格昂贵,采用SSD必然会带来用户使用成本的提升。于是,我们开始思考能否从技术角度来解决这个问题,通过对磁盘性能特性的分析,我们开始研发第一代IO加速方案。即使今天SSD越来越普及,机械盘凭借成本低廉以及存储稳定的特点,仍然广泛应用,而IO加速技术能让机械盘满足绝大多数应用场景的高IO性能需求。 二

Linux中buff/cache内存占用过高解决办法

柔情痞子 提交于 2019-12-01 18:25:44
在Linux系统中,我们经常用free命令来查看系统内存的使用状态。在一个centos7的系统上,free命令的显示内容大概是这样一个状态: 这个命令几乎是每一个使用过Linux的人必会的命令,但越是这样的命令,似乎真正明白的人越少(我是说比例越少)。一般情况下,对此命令输出的理解可以分这几个层次: 不了解。这样的人的第一反应是:天啊,内存用了好多,14个多G,可是我几乎没有运行什么大程序啊?为什么会这样?Linux好占内存! 自以为很了解。这样的人一般评估过会说:嗯,根据我专业的眼光看的出来,内存才用了1.7G左右,还有很多剩余内存可用。buffers/cache占用的较多,说明系统中有进程曾经读写过文件,但是不要紧,这部分内存是当空闲来用的。 真的很了解。这种人的反应反而让人感觉最不懂Linux,他们的反应是:free显示的是这样,好吧我知道了。神马?你问我这些内存够不够,我当然不知道啦!我特么怎么知道你程序怎么写的? 根据目前网络上技术文档的内容,我相信绝大多数了解一点Linux的人应该处在第二种层次。大家普遍认为,buffers和cached所占用的内存空间是可以在内存压力较大的时候被释放当做空闲空间用的。但真的是这样么?在论证这个题目之前,我们先简要介绍一下buffers和cached是什么意思: 什么是buffer/cache?