承接上文k8s自动化运维九
列出磁盘分区
fdisk -l
物理分区只分了一个/dev/sda,
在安装虚拟机的时候并没有给它进行物理分区,在装linux操作系统的时候,自动划分了2个区域,这两个区域区域代表逻辑分区。
sd,hd表示硬盘, a表示第一块盘, 1表示硬盘上的第一个分区,sda1是引导分区,sda2是真正存储文件(包括系统文件、用户文件等)的分区。
/dev/mapper/centos-root 这个指根目录下有18.2GB,都在sda2中。
/dev/mapper/centos-swap 这个是指交换分区大小是2GB。
查看磁盘空间
df
单独用df,没有格式输出,以KB为单位
df -h
/dev/sda1是引导分区,/dev/mapper/centos-root是/dev/sda2分区,真正存储文件的分区。
tmpfs 存储一些系统文件,一般用来做交换分区。
引导分区使用了15%,说明磁盘的使用情况是非常健康的。
一般看/dev/mapper/centos-root、/dev/sda1 这两个分区就行了,如果这两个分区没有达到80%以上,都不要紧的。
查看目录下所有文件大小
du -ah tmp/
a表示这个目录下的所有文件,包含子文件和目录
h表示格式化输出 就是带上单位KB,没有h则只有数字,没有K,这里只有KB单位,没有MB、GB
查看目录下所有文件大小及汇总
du -ac tmp/
多了一个汇总total,加个h多了一个K
显示文件大小
du -sh etc/yum
s 表示汇总
h 表示格式输出
去掉s,计算目录中的每个文件的大小
显示目录下所有文件总计
du -sh etc
带上s ,把整个etc目录做个汇总,计算大小,节省了系统运算的时间。
监控磁盘I/O状况iotop
-n 指定统计次数
iotop -n 5-u 指定进程用户
iotop -u root
全是跟root相关的进程
-o 显示正在进行I/O活动的进程,可以减少输出的干扰
iotop -o
只显示活动的进程
查看服务的进程号
netstat -antlp
1119是sshd服务的进程号,1990是终端服务连接到了虚拟机192.168.168.156的22端口即sshd进程,本机电脑通过网关192.168.168.1与虚拟机进行交换数据。
-p 指定进程号,监视指定进程,只输出该进程的统计信息
iotop -p 1990
只查看这个ssh与io交互的状况。
iotop监控磁盘io情况,输出信息说明
进程肯定和io打交道,io的写入和读取
这是每个进程所占磁盘的读取速率,把所有跟io相关的进程都列出来了,
Total DISK READ 读取速率总计
读磁盘汇总,每秒0个字节,说明这个磁盘没有线程读
Total DISK WRITE 写入速率总计
Actual DISK READ 实际读取磁盘速率
Actual DISK WRITE 实际写入磁盘速率
TID 线程,按p可切换PID,不管线程还是进程,id都一样
PRIO 优先级
USER 执行进程的用户
DISK READ 磁盘速度速率
DISK WRITE 磁盘写入速率
SWAPIN swap交换百分比
swap磁盘跟cpu交换的百分比,百分比越大,说明占有的这个磁盘io交互延迟就越大,延迟越大,说明这个磁盘io负载压力较大,百分比越小,磁盘越没有压力。IO> IO等待所占百分比
io等待所占的百分比,值越小,说明磁盘io空闲比较大,磁盘越没有压力,百分比越大,说明等待延迟就越长,io负载压力就越大。COMMAND 线程/进程详细信息
表示每个进程都在干什么,执行的什么命令
SWAPIN和IO>这两个参数要重点关注下,哪个进程把磁盘IO的负载拉的很高,就把哪个进程杀掉。
查看磁盘io的负载
系统检测工具安装
yum install -y sysstat iotop lsofiostat -xk 1 3
iostat依赖sysstat,1表示间隔时间是1秒,3表示输出3次,xk表示查看io的整个负载,
每隔1秒输出一次,共输出3次,基本把io所有基本信息都输出出来了。avg-cpu表示cpu的平均速率,cpu的负载,%idle越大,表示空闲率越高,98.99%说明基本没什么负载,
Device 磁盘分区名称,设备的名称,
sda0,sda1是连接到计算机硬盘驱动器(sda(表示第1块SCSI硬盘,是物理分区))的逻辑分区;dm-0& dm-1是在安装或配置计算机时创建的逻辑(卷)分区;scd0表示第1个USB光驱;fd0是交换分区
rrqm/s 每秒进行读操作数目,每秒读取多少个数据块
wrqm/s 每秒进行写操作数目
r/s 每秒完成的读I/O设备次数
w/s 每秒完成的写I/O设备次数
rkB/s 每秒读K字节数
wkB/s 每秒写K字节数
avgrq-sz 平均每次设备I/O操作的数据大小
avgqu-sz 平均I/O队列长度,如果队列长度长了,说明队列已经很拥堵了,io处理不过来了,负载就越高
await 平均每次设备I/O操作的等待时间(毫秒),等待时间越短,说明速度越快
r_await 每个读操作平均所需的时间
w_await 每个写操作平均所需的时间
svctm 平均每次设备I/O操作的服务时间(毫秒)
%util 一秒中有百分之多少的时间用于I/O操作即IO消耗cpu的百分比,这个值越大,说明被IO消耗的时间比例就越大,IO负载就会越高,只看这一列就可以知道IO负载高不高了。
Linux的硬盘识别
2.6 kernel以后,linux会将识别到的硬件设备,在/dev/下建立相应的设备文件.如:
sda 表示第1块SCSI硬盘
hda 表示第1块IDE硬盘(即连接在第1个IDE接口的Master口上)
scd0 表示第1个USB光驱.
当添加了新硬盘后,在/dev目录下会有相应的设备文件产生。cciss的硬盘是个例外,它的
设备文件在/dev/cciss/目录下。一般使用”fdisk -l”命令可以列出系统中当前连接的硬盘。
新硬盘没有分区信息,则只显示硬盘大小信息。
怎样给linux操作系统增加磁盘
首先要挂载物理磁盘,先把虚拟机关机,关了虚拟机,再来挂载物理磁盘,
把这个虚拟机关了,这个虚拟机当前的磁盘空间是20G。
如果是物理机的话,机房人员直接插入一个磁盘就可以了,那怎么给虚拟机添加磁盘呢?
点击硬盘,
添加磁盘,
点击磁盘,
选择SCSI,
使用新的虚拟磁盘,
设置增加的磁盘空间,选择将虚拟磁盘拆分成多个文件,
设置虚拟机磁盘文件,
添加好之后,这样就会多了一个新硬盘,相当于机房人员在服务器上插入了一个新的硬盘,
选择10G的这个新硬盘,点击添加、确定,然后打开虚拟机,
在虚拟机启动的时候,会自动将这个新硬盘挂载到linux操作系统中,但还不能在linux操作系统中写入文件,还需要进行磁盘挂载、分区、格式化。
磁盘挂载、分区、格式化
查看分区信息
fdisk -l
创建一个分区
fdisk -u dev/sdb
查看磁盘挂载情况
多了10个GB的一个分区sdb,sda是之前装系统的时候挂载的一个磁盘,sdb是新挂载的,但是并没有进行分区。sda里面有2个逻辑分区,sda1,sda2,sdb还没有进行分区,那么sdb是不能使用的
创建分区
fdisk -u dev/sdb
(这里千万不能打错,别打成sda了,那么就会把sda磁盘上的数据格式化了,那就芭比Q了,一定要对没有分区的磁盘进行分区,已经分区过的,千万不能再分区了,别把数据弄丢失了)
p是打印分区表,
确认下这个分区的磁盘有没有选择错误,这个磁盘一定一定是没有分过区的。
n是增加一个新的分区,
默认选择主分区,另外一个是扩展分区,先分主分区。
分4个区,默认是从第一个开始,相当于输入分区的区号1。
默认是从哪个分区开始,分区是一个扇区,默认值从2048开始分,(磁盘是有轨道的,从多少到多少,一个扇区一个扇区来分)。
然后是分几个区,把2049到20971519这个扇区全部给主分区呢,还是分两次,还是等下再分个逻辑分区呢,这里把这个扇区分成一个主分区,10个G的磁盘分成了一个区,也没有再对这个主分区再分逻辑分区。
将这个成功的分区写入分区列表,此时分区就结束了。
可以看到,多了一个逻辑分区。刚才只给它分了一个主分区,并没有再分其他的扩展分区,所以它的逻辑分区就只有一个。
查看分区信息
lsblk /dev/sdb
物理分区sdb,逻辑分区sdb1,把10个G都给了这个主的逻辑分区
再进行格式化
相当于在windows上格式化磁盘一样的,
windows上分了3个区,
这里分了一个区,分区完了,肯定要格式化,
常用的windows系统有三种模式 FAT16、FAT32、NTFS,还有一种模式是 exFAT 性能介于 FAT32和NTFS之间,但只有U盘可以使用;linux主流的是ext4,之前是ext3。
mkfs.ext4 /dev/sdb1
这个命令专门为格式化磁盘且格式为ext4用的,后面带的是/dev/sdb1这个逻辑分区名称,不是物理分区,敲成sda就芭比Q了,
格式化完了,才能真正的把磁盘挂载进行使用,才能给linux这个操作系统进行文件写入、读取数据。
首先创建一个挂载目录,查看挂载这个磁盘的uuid,每个磁盘,不管是物理磁盘,还是逻辑磁盘,还是虚拟磁盘,都有一个uuid,是唯一标识,就像网卡的uui的一样,是网卡的唯一标识。
mkdir -pv /newdata
# 这里专门存的是挂载硬盘的id
ls -l /dev/disk/by-uuid复制
找到sdb1,这个uuid一定一定不要复制错了,把uuid写入分区列表,格式是ext4,
vim /etc/fstab
复制
这是之前已经挂载好的,查看的分区列表数据也是来源于这里。
根分区的挂载是用设备名称来挂载的。
这里展示了三种挂载方式,第一个是使用设备名称挂载,第二个是使用uuid挂载,第三个是交换分区,它是一个虚拟机分区,没有目录,这里是内存和硬盘的读取分区,读取速率要大于硬盘,小于内存,内存比硬盘至少要快几十倍。
加入进去,重启reboot,
查看整个磁盘的使用情况
多了sdb1,此时占了1%,因为它有些系统挂载文件,不要去删它,不用管它。
这个时候磁盘就可以了。
虚拟机和真实的服务器,包括云服务器操作是一样的,只不是云服务器是云厂商帮你挂载一个硬盘,你再去买个硬盘,加个硬盘,加完以后,再重启,再挂载再重启。
而物理机,云自建中心,私有云,由值班人员,加个物理硬盘,加完之后,你在linux操作系统里面,进行挂载,进行分区,进行格式化。