1 背景
运维工程师(Operations)是负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI的专业人员。他们的基本职责是负责服务的稳定性,确保服务可以7*24H不间断地为用户提供服务。
作为一名运维工程师,操作系统知识 怎么可以落下,我们需要深入理解Linux系统,包括其文件系统、进程管理、用户和权限管理等。今天就先讲讲「设备和自动化」中的查看块设备和文件系统。说到了这里,大家可能又要跃跃欲试了,毕竟,这些基础的知识也是需要我们下笔如有神。从标题中,你已经猜测出来我此时说的这个小工具叫什么名字。
2 环境检查
首先需要了解下什么是块设备(block devices),块设备是指设备的文件。这些设备可以是HDD、SDD、RAM磁盘等。块设备文件可以在目录下找到 /dev。有了这个信息之后,在Linux服务器中,没有操作界面,我们是如何查看这些信息呢,lsblk就应运而生了。
lsblk指令主要用于展示块设备(block devices)的信息,包括磁盘、分区和挂载点等。
lsblk命令 用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,cd-ROM等等。lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。这个包带了几个其它工具,如dmesg。
无论做什么工作,我们需要先做的就是熟悉我们的环境。
首先,执行命令查看当前的操作系统。
代码语言:javascript复制[root@xxx ~]# uname -a
Linux xxx 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
其次,我们需要检查下我们的机器是否有这个命令。
代码语言:javascript复制root@xxx ~]# lsblk -V
lsblk,来自 util-linux 2.23.2
没有看错,当你执行完命令之后,你发现了什么?util-linux,所以这个是属于Linux的自带工具。
如果没有安装或者卸载也没有关系,要安装lsblk,请在此处下载util-linux包。Fedora用户可以通过命令sudo yum install util-linux-ng来安装该包。
3 帮助简介
在Linux环境中,有很多约定俗成的命令,可以帮助我们很快的投入到工作中,例如--help 。下面是我在我的机器上面执行了帮助命令,现在看着是不是一目了然?
代码语言:javascript复制[root@xxx ~]# lsblk --help
用法:
lsblk [选项] [<设备> ...]
选项:
-a, --all 打印所有设备
-b, --bytes 以字节为单位而非易读的格式来打印 SIZE
-d, --nodeps 不打印从属设备(slave)或占位设备(holder)
-D, --discard 打印时丢弃能力
-e, --exclude <列表> 根据主设备号排除设备(默认:内存盘)
-I, --include <列表> 只显示有指定主设备号的设备
-f, --fs 输出文件系统信息
-h, --help 使用信息(此信息)
-i, --ascii 只使用 ascii 字符
-m, --perms 输出权限信息
-l, --list 使用列表格式的输出
-n, --noheadings 不打印标题
-o, --output <列表> 输出列
-p, --paths 打印完整设备路径
-P, --pairs 使用 key=“value” 输出格式
-r, --raw 使用原生输出格式
-s, --inverse 反向依赖
-t, --topology 输出拓扑信息
-S, --scsi 输出有关 SCSI 设备的信息
-h, --help 显示此帮助并退出
-V, --version 输出版本信息并退出
可用列(用于 --output):
NAME 设备名
KNAME internal kernel device name
MAJ:MIN 主:次 设备号
FSTYPE 文件系统类型
MOUNTPOINT where the device is mounted
LABEL filesystem LABEL
UUID filesystem UUID
PARTLABEL 分区 LABEL
PARTUUID 分区 UUID
RA read-ahead of the device
RO 只读设备
RM removable device
MODEL device identifier
SERIAL disk serial number
SIZE size of the device
STATE 设备的状态
OWNER user name
GROUP group name
MODE device node permissions
ALIGNMENT alignment offset
MIN-IO minimum I/O size
OPT-IO optimal I/O size
PHY-SEC 物理扇区大小
LOG-SEC 逻辑扇区大小
ROTA rotational device
SCHED I/O scheduler name
RQ-SIZE request queue size
TYPE device type
DISC-ALN discard alignment offset
DISC-GRAN discard granularity
DISC-MAX discard max bytes
DISC-ZERO 忽略零数据
WSAME write same max bytes
WWN unique storage identifier
RAND adds randomness
PKNAME internal parent kernel device name
HCTL Host:Channel:Target:Lun for SCSI
TRAN device transport type
REV device revision
VENDOR device vendor
更多信息请参阅 lsblk(8)。
4 实践先行
lsblk
代码语言:javascript复制[root@xxx ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 7.9G 0 part [SWAP]
└─sda3 8:3 0 191.9G 0 part /
sr0 11:0 1 1024M 0 rom
[root@xxx ~]#
对照着上面的说明文档,是不是一目了然?下面我就以ubuntu来做一个简单的讲解。
01.列出所有块设备
【命令】lsblk -a
【说明】使用选项-a显示所有设备,包括空设备,执行命令
02.要更改树状格式的默认lsblk输出
【命令】lsblk -l
【说明】更改树状格式的默认lsblk输出,l其实是List的形式,使用列表格式的输出
03.显示特定设备
【命令】lsblk 目录设备
【说明】在设备名称后面使用lsblk来显示有关特定设备的信息。
04.按需选择
【命令】lsblk -o 选项
【说明】可以使用-o选项显示特定列的输出,下面来展示下名称和大小
05.显示权限
【命令】lsblk -m
【说明】可以使用-o选项显示特定列的输出,下面来展示下名称和大小
06.输出有关 SCSI 设备的信息
【命令】lsblk -S
【说明】可以使用-S选项输出有关 SCSI 设备的信息
07.显示每个设备的区域模型
【命令】lsblk -z
【说明】可以使用-z选项显示每个设备的区域模型,根据系统来,有些系统没有这个参数
5 写在最后
作为一名运维工程师需要了解掌握很多技能,比如说操作系统、开源组件、监控相关、编程知识、网络知识、数据库知识、自动化技能和日志分析能力。当然也不能缺少一些软技能,例如沟通、抗压等,要和同事、领导以及客户保持良好的沟通,理解需求,提供有效的解决方案,需要应对高强度的工作压力,保持冷静,快速解决问题。
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!