sysstat:

1
2
3
4
5
6
# <https://github.com/sysstat/sysstat>
$ sudo apt-get install sysstat
# 包括 iostat/mpstat/pidstat/tapestat/cifsiostat

# 查看diskio信息
$ sudo iostat

iotop

1
2
3
# 查看进程的diskio
$ sudo apt-get install iotop
$ sudo iotop

df

df计算文件系统磁盘空间使用:

1
2
3
4
5
df
$ df -h

# 查看目录信息(读写哪个设备)
$ df /path/folder

dd

dd转化并拷贝文件:

1
dd

fsck

fsck检查并修复文件系统:

1
fsck

fdisk

支持msdos,支持2T以下的磁盘.

fdisk管理磁盘分区表:

1
2
3
4
5
6
7
8
fdisk
fdisk -l

fdisk /dev/sda # 可以创建新的磁盘分区
> n ...    创建新的分区
> t (8e表示linux LVM), 修改分区类型
> w 保存修改
partprobe /dev/sda # 在不重启的情况下保存分区

parted

支持gpt分区表,支持2T以上的大磁盘.

大存储分区工具,比如nas,raid.

1
parted /dev/sda print

mkfd

mkfs:

1
2
mkfs [options] [-t type fs-options] device [size]
mkfs.ext4 /dev/sdb1 # 将分区格式化成ext4格式.

mount

相关文件:

1
2
3
4
5
/etc/fstab
/etc/mtab

查看磁盘的uuid, 通过uuid挂载
ls -l /dev/disk/by-uuid

mount/umount挂载文件系统:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
mount # 查看所有挂载信息

mount -t type -o option device dir

# 将目录挂载到指定磁盘分区
mount -t ext4 /dev/sdb1 /opt
等效修改/etc/fstab
/dev/sdb1 /opt ext4 defaults 0 0

# 将目录挂在到内存上.
mount -t tmpfs -o size=100G tmpfs /var/www

# 本机挂载, 将本机的folder2挂载到folder1, folder2中原有的内容会隐藏.
mount --bind /path/folder1 /path/folder2
/path/folder1 /path/folder2 none bind 0 0

umount
umount device/dir

磁盘管理

1
2
3
4
5
6
7
# 先创建linux lvm分区
pvcreate <pv-name> # 创建物理卷PV
pvdisplay
vgextend <vg-name> <pv-name>  # 给物理卷创建卷组VG
vgdisplay
lvextend -r -l +100%FREE <lv-path> # 将物理卷上的空闲空间全部放到逻辑卷LV上
lvdisplay

sync同步缓存写入固态存储:

1
sync

查看所有硬件设备:

1
2
lshw # 列出硬件
lshw -class disk # 查看磁盘设备

设备管理:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
lspci # 列出所有PCI设备

lsusb # 列出USB设备

lsblk # 列出块设备

setleds

loadkeys

dumpkeys

MAKEDEV

IOPS

磁盘IO.

安装fio:

1
$ sudo apt-get install fio

测试随机读写的IO:

1
2
3
$ fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randrw
-rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100
-group_reporting -name=mytest