块设备

LinuxC——2.文件属性

久未见 提交于 2020-04-08 04:40:14
LinuxC——2.文件属性 0.❤️API stat、fstat、lstat umast chmod、fchmod chown、fchown、lchown link、unlink、remove、rename、symlink、readlink chdir、getcwd 1.🧡Linux的7种文件类型 普通文件 - 文本文件 存放文字编码,文本编辑器打开后,进行翻译成文字 二进制文件(机器码) 存放执行二进制机器码,使用文本编辑器查看是乱码 对于linux而言没有区别,至于文中数据由应用程序来解决 目录文件 d 目录是一种特殊文件,专门用于管理其他文件 字符设备文件 c 对接字符设备驱动,读取字符设备文件,是与字符设备驱动的交互 块设备 b 字符设备 以字节为单位操作数据,比如鼠标、键盘、显示器 块设备 块设备数据非常大,提高读写,以1024为单位。比如电脑磁盘、移动硬盘 Pipeline p 管道文件,用于不同程序或进程的通信(使用一个管道文件进行交互) Socket s 套接字文件 符号链接 l 类似快捷图标 2.🧡基础知识 🤠使用file命令可查看文件类型,如 file a.txt Linux可执行文件:ELF文件(Executable and Linkable Format) Windows可执行文件:PE文件(protable execute) Mac可执行文件:Mach

LinuxC——1.文件读写

时光怂恿深爱的人放手 提交于 2020-04-05 17:27:02
LinuxC——1.文件读写 1.❤️文件IO 从CPU到文件是Output的一个过程,从文件到CPU是一个Input的过程,这个过程是以CPU为点的 2.🧡系统函数 open:打开文件 close:关闭文件 read:读数据 write:写数据 lseek:移动文件中读写位置 dup:文件书写位置重定位函数,重定位可以写入另一个文件 fcntl:文件描述符设置 ioctl:一个特殊函数 3.💛文件读写的简单例子 open函数:通过fd,找到块设备文件 文件系统是一个程序代码,组织块设备所有文件 文件系统属于OS一部分 找到文件后,调用块设备驱动,打开文件 打开成功,返回非负操作符 打开失败,返回-1 write函数:利用打开成功返回的,向文件里面写数据 lseek函数:利用文件描述符,将文件读写位置调整到文件相应位置 why设置文件头 write的时候,文件读写位置已经到了末尾 read函数:从文件头开始,读取指定长度的数据到buf中 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <string.h> int main() { int fd = 0; fd = open("./file.txt", O

Linux设备(\\dev)介绍

风格不统一 提交于 2020-03-26 09:06:35
linux是文件型系统,所有硬件如软件都会在对于的目录下面有相应的文件表示。对于dev这个目录,我们知道它下面的文件,表示的是linux的设 备。在windows系统中,设备大家很好理解,象硬盘,磁盘指的是实实在在硬件。而在文件系统的linux下面,都有对于文件与这些设备关联的。访问它 们就可以放到实际硬件,想想还是linux灵活了。变成文件,操作该多简单了。不用调用以前com,prt等接口了。直接读文件,写文件就可以向设备发送 读或者写操作了。 按照读写存储数据方式,我们可以把设备分为以下几种:字符型设备,块设备,伪设备。 一、设备分类 字符型设备 字符设备是指每次与系统传输1个字符的设备。这些设备节点通常为传真、虚拟终端和串口调制解调器、键盘之类设备提供流通信服务,它通常不支持随机存 取数据。 字符设备在实现时,大多不使用缓存器。系统直接从设备读取/写入每一个字符。例如,键盘这种设备提供的就是一个数据流,当你敲入“cnblogs”这个字 符串时,键盘驱动程序会按照和输入完全相同的顺序返回这个由七个字符组成的数据流。它们是顺序的,先返回c,最后是s。 块设备 块设备是指与系统间用块的方式移动数据的设备。这些设备节点通常代表可寻址设备,如硬盘、CD-ROM和内存区域。 块设备通常支持随机存取和寻址,并使用缓存器。操作系统为输入输出分配了缓存以存储一块数据

LXD 2.0 系列(四):资源控制

我与影子孤独终老i 提交于 2020-03-20 13:45:31
这是 LXD 2.0 系列介绍文章的第四篇。 LXD 入门 安装与配置 你的第一个 LXD 容器 资源控制 镜像管理 远程主机及容器迁移 LXD 中的 Docker LXD 中的 LXD 实时迁移 LXD 和 Juju LXD 和 OpenStack 调试,及给 LXD 做贡献 因为 LXD 容器管理有很多命令,因此这篇文章会很长。 如果你想要快速地浏览这些相同的命令,你可以 尝试下我们的在线演示 ! 可用资源限制 LXD 提供了各种资源限制。其中一些与容器本身相关,如内存配额、CPU 限制和 I/O 优先级。而另外一些则与特定设备相关,如 I/O 带宽或磁盘用量限制。 与所有 LXD 配置一样,资源限制可以在容器运行时动态更改。某些可能无法启用,例如,如果设置的内存值小于当前内存用量,但 LXD 将会试着设置并且报告失败。 所有的限制也可以通过配置文件继承,在这种情况下每个受影响的容器将受到该限制的约束。也就是说,如果在默认配置文件中设置 limits.memory=256MB ,则使用默认配置文件(通常是全都使用)的每个容器的内存限制为 256MB。 我们不支持资源限制池,将其中的限制由一组容器共享,因为我们没有什么好的方法通过现有的内核 API 实现这些功能。 磁盘 这或许是最需要和最明显的需求。只需设置容器文件系统的大小限制,并对容器强制执行。 LXD 确实可以让你这样做!

Ceph学习笔记(1)- 架构概述

时光怂恿深爱的人放手 提交于 2020-03-17 14:59:22
简介 Ceph的目标是采用商业硬件来构建大规模的、具有高可用、高扩展、高性能的分布式存储系统,ceph具有如下特点: 软件定义存储:Ceph不需要特定的硬件,在主流的Linux发行版等类Unix操作系统上均可运行 分布式存储:得意与计算寻址让Ceph客户端可以直接与服务端任意节点通信,避免因存在访问热点产生的性能瓶颈,这也是他可以轻易管理PB级以上规模集群的重要原因 统一存储:Ceph支持传统的块存储(RBD)、文件系统存储(Ceph fs)与新兴的对象存储协议(RADOSGW) 架构 Ceph采用存储应用与存储服务完全分离(Client/Server)的模式,基于Rados对外提供服务。客户端可以直接通过LIBRADOS访问RADOS系统,也可以调用在LIBRADOS上封装的Radosgw、librbd、libcephfs这些接口访问存储。 图1 Ceph架构图 RADOS网关接口(RGW):如图1,RGW提供对象存储服务,通过librados允许APP直接与Ceph对象存储建立连接,基于librados封装的librgw也提供了与Amazon S3协议和OpenStack Swift协议兼容的RESTful API。可以将它理解为对文件(对象)进行上传、下载、查询、删除等。 对象存储采用扁平化目录结构,利于进行大规模的扩容。 S3/Swift接口均分三级:Account

Linux Kernel - The Block I/O Layer

北慕城南 提交于 2020-03-11 17:56:49
固定大小的数据块称为块,常见块设备磁盘有硬盘,闪存等,随机访问,字符设备以序列数据流的方式访问,如键盘输入是一字节接一字节访问。由于块设备的复杂度,访问性能等原因,内核提供了一个子系统进行管理,即 Block I/O Layer。块设备最小可寻址单元称为扇区,扇区大小是一个设备的物理属性,大部分块设备为 512 B,CD-ROM 磁盘为 2KB。软件层面上的块是文件系统中的一个抽象概念,也是文件系统最小可逻辑寻址单元。尽管物理设备是以扇区来寻址,内核以块来执行磁盘操作。 且 Buffers and Buffer Heads struct buffer_head { unsigned long b_state; /* buffer state flags */ struct buffer_head *b_this_page; /* list of page’s buffers */ struct page *b_page; /* associated page */ sector_t b_blocknr; /* starting block number */ size_t b_size; /* size of mapping */ char *b_data; /* pointer to data within the page */ struct block_device *b

Linux运维*一.Linux基础---15、btrfs文件系统

被刻印的时光 ゝ 提交于 2020-03-10 23:41:15
一、btrfs文件系统简介 btrfs(B-tree,Butter FS,Better FS):由GPL授权,Oracle在2007年左右开始研发,支持写时复制(CoW),是ext的取代产品,centos6不支持btrfs btrfs核心特征: 1、多物理卷支持: btrfs可由多个底层物理卷组成 支持RAID、以联机“添加”、“移除”、“修改” 2、支持写时复制跟新机制(CoW): 修改文件时,不直接修改原文件,而是修改快照复制出那份文件 修改完成后将文件名指向重源文件改为指向修改的复制文件上; 工作模式为:复制、更新、替换指针; 可实现文件的快速修复及恢复。 3、支持数据及元数据校验码:checksum 4、支持子卷:sub_volume 5、支持快照及增量快照:即支持给快照进行快照 6、透明压缩: 将数据存储到btrfs文件系统时,能实现自动压缩; 读取时有能实现自动解压缩,节约存储空间 二、btrfs文件系统管理工具 [root@localhost ~]# btrfs btrfs btrfs-debug-tree btrfs-map-logical btrfstune btrfsck btrfs-find-root btrfs-select-super btrfs-zero-log btrfs-convert btrfs-image btrfs-show-super

Linux 0.11 文件系统的实现机制

若如初见. 提交于 2020-03-09 00:29:46
#Linux 0.11 文件系统的实现机制 ##一、概述 Linux 0.11的文件系统与Minix 1.0文件系统类似,是一种索引式文件系统。对于Linux而言,一切都是文件。一般有普通文件,字符设备文件,块设备文件,符号链接,目录文件,有名管道等。这是由文件系统实现的,它把底层进行了抽象,提供了统一的访问接口,如open,read,write等系统调用。其实对于文件系统,每个设备都有一个唯一的识别标志,即设备号。设备号在Linux中是一个非常重要的概念,对于同一类设备,如两个硬盘,主设备号是一样的,但是次设备号是不同。因为同一类设备的驱动程序是类似的,但是我们要区别不同的硬盘分区,这样实现每个设备的特定驱动,然后传递次设备号就可以了。对于不同的硬盘分区,其上的文件系统不一定相同,而Linux并没有Windows下盘符的概念,Linux只有一个根文件系统,也就是只有一棵目录树,那么其他有文件系统的设备是怎么被访问的呢?这是通过挂载实现的,把设备挂载在根文件系统的某个目录下,这个目录即为挂载点,它也是这个设备的根目录。当我们不用该设备的时候,必须把它卸载掉。在现代许多新版本的Linux桌面系统中,已经实现了自动挂载的功能,如光盘、USB等,插入即识别。 Linux的挂载功能解决了访问多个设备的情形。Linux的挂载功能要求它必须能够识别多种文件系统,那么就要有多种设备驱动

第02问:怎么模仿磁盘 IO 慢的情况?

浪子不回头ぞ 提交于 2020-03-06 17:50:55
问题: 怎么模仿磁盘 IO 慢的情况? 实验: 1. 创建延迟的磁盘 用 dd 创造一片 100M 的文件 将创建的文件用 losetup 虚拟成块设备 /dev/loop3 将块设备 /dev/loop3 映射成带延迟的设备(对于读操作和写操作都延迟 100ms) 2. 用 MySQL 进行实验 将磁盘格式化,并载入 用 dbdeployer 安装 MySQL,将 binlog 的位置设置到 /mnt/slow,开启双 1 刷盘参数 用 mysqlslap 进行压力测试 通过 iostat 可以观察到 binlog 所在的块设备 IO 发生饱和: dm-0 (/dev/mapper/dm-slow) 设备的 IO 出现了排队(aqu-sz),使用率饱和。 loop3 是 dm-0 背后的块设备,其 IO 还有充足的能力,可证明 dm-0 带有 IO 延迟。 通过 pt-ioprofile 观察 MySQL 的 IO 消耗时间,可以看到花费在 binlog IO 上的时间远大于其他消耗。 结果: 我们制造了一个慢 IO 的设备,将 MySQL binlog 放在其中,制造了 binlog IO 慢的场景。有了这个手段,之后我们可以分析 MySQL 在局部文件 IO 慢时,哪些状态量会发生变化,以及 MySQL 会发生什么行为。 来源: oschina 链接: https://my

linux文件和目录的属性详解

送分小仙女□ 提交于 2020-03-05 13:53:16
#1.Linux文件 #概述 #1.linux里一切皆为文件 #2.Linux系统中的文件或目录的属性主要包括:inode(索引节点)、文件类型、权限属性、链接数、所属用户和用户组、最近修改时间等内容 #例如:执行ls -lhi ,会出现10列内容 [root@cots3 ~]# ls -lhi total 28K 33865597 -rw-r--r-- 1 root root 104 Feb 29 09:43 1.txt 33865598 -rw-r--r-- 1 root root 13 Feb 29 09:44 2.txt 33619589 -rwxr-xr-x 1 root root 187 Mar 2 23:44 3.sh #10列内容讲解 第一列:inode索引节点编号(唯一的,像人的身份证) 第二列:文件类型及权限(共10个字符,第一字符为类型,后9个为文件权限) 第三列:硬链接数 第四列:文件或目录所属的用户 第五列:文件或目录所属的组 第六列:文件或目录的大小 第七、八、九列:实际的文件或目录名 #上图 #2.文件属性详细讲解 #2.1索引节点:inode #概述 #1.indoe,中文意思是索引节点(index node)。在每个Linux存储设置或存储设备的分区被格式化为ext4文件系统之后,一般会生成两个部分,第一部分时inode,第二部分时block #2