linux文件系统管理
1.硬盘的逻辑结构
红色:0磁道0扇区,放置启动引导程序。
蓝色 :扇区,存放数据,固定大小512Byte。最小存储单位。
机械磁盘:转速7200或5400,速度决定了读写数据的快慢。已损坏。
固态硬盘
2.硬盘接口
IDE接口,Intergrated Drive Electronics,电子集成驱动器,ATA/PATA硬盘,早期机械硬盘的主要接口。理论读取速度133MB/S。
SATA接口,Serial ATA,理论传输速度600MB/S。目前主流接口。
SCSI接口,Small Computer System Interface,小型计算机系统接口,速度达到320MB/S。
cpu速度快,因此采取分级缓存的方式,存储数据,内存(DDR4的内存条,理论读取速度每秒2400MB/S。)最主要数据放缓存,主要数据放内存,不重要放硬盘。一般服务器CPU的L1缓存的容量通常在32—256KB。
3.linux文件系统的特性
超级块:存档整个分区,总节点数,已用和未用节点数,总数据块数,已用和未用数据块数,以及数据组的信息,可以通过命令 dumpe2fs -h /dev/sda1 查询数据
数据块:
节点:记录文件的权限,rwx,文件的所属组,所有者,文件的状态改变时间,文件最近一次读取时间
# 查看 sda硬盘第一个分区的超级块的信息
yanyanzhang@ubuntu:~/shell_study$ dumpe2fs -h /dev/sda1 dumpe2fs 1.42.13 (17-May-2015) dumpe2fs: Permission denied while trying to open /dev/sda1 Couldn't find valid filesystem superblock. yanyanzhang@ubuntu:~/shell_study$ su Password: root@ubuntu:/home/yanyanzhang/shell_study# dumpe2fs -h /dev/sda1 dumpe2fs 1.42.13 (17-May-2015) Filesystem volume name: <none> Last mounted on: / Filesystem UUID: 558ad55d-011d-4fc3-a8c2-bea044044f2e Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 1248480 # 节点数量 Block count: 4992512 # 数据块数量 Reserved block count: 249625 Free blocks: 1811785 # 未使用数据块数量 Free inodes: 871316 # 未使用节点数量 First block: 0 Block size: 4096 # 数据块大小4kb Fragment size: 4096 Reserved GDT blocks: 1022 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8160 Inode blocks per group: 510 Flex block group size: 16 Filesystem created: Tue Dec 22 22:20:47 2020 Last mount time: Tue May 4 17:01:04 2021 Last write time: Tue May 4 17:01:04 2021 Mount count: 9 Maximum mount count: -1 Last checked: Tue Dec 22 22:20:47 2020 Check interval: 0 (<none>) Lifetime writes: 63 GB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 First orphan inode: 673270 Default directory hash: half_md4 Directory Hash Seed: 9db19dd8-1f1d-4a0f-9afa-f3a39c4e403e Journal backup: inode blocks Journal features: journal_incompat_revoke Journal size: 128M Journal length: 32768 Journal sequence: 0x0001410a Journal start: 8194
centos7使用的是xfs文件系统。
win下的是NTFS文件系统,linux默认不识别NTFS文件系统,如需要识别,需要重新编译内核。
4.常用的硬盘命令
df命令 -a显示特殊文件系统,这些文件系统几乎是保存在内存中的,如/proc,因为是挂载在内存中, -h 单位换算成习惯单位,-T多出文件系统类型一列
root@ubuntu:/home/yanyanzhang/shell_study# df -a Filesystem 1K-blocks Used Available Use% Mounted on sysfs 0 0 0 - /sys proc 0 0 0 - /proc udev 1977208 0 1977208 0% /dev devpts 0 0 0 - /dev/pts tmpfs 401592 16408 385184 5% /run /dev/sda1 19525500 12275696 6234920 67% / securityfs 0 0 0 - /sys/kernel/security tmpfs 2007948 216 2007732 1% /dev/shm tmpfs 5120 4 5116 1% /run/lock tmpfs 2007948 0 2007948 0% /sys/fs/cgroup cgroup 0 0 0 - /sys/fs/cgroup/systemd pstore 0 0 0 - /sys/fs/pstore cgroup 0 0 0 - /sys/fs/cgroup/net_cls,net_prio cgroup 0 0 0 - /sys/fs/cgroup/blkio cgroup 0 0 0 - /sys/fs/cgroup/cpu,cpuacct cgroup 0 0 0 - /sys/fs/cgroup/hugetlb cgroup 0 0 0 - /sys/fs/cgroup/pids cgroup 0 0 0 - /sys/fs/cgroup/perf_event cgroup 0 0 0 - /sys/fs/cgroup/cpuset cgroup 0 0 0 - /sys/fs/cgroup/devices cgroup 0 0 0 - /sys/fs/cgroup/memory cgroup 0 0 0 - /sys/fs/cgroup/freezer cgroup 0 0 0 - /sys/fs/cgroup/rdma systemd-1 0 0 0 - /proc/sys/fs/binfmt_misc debugfs 0 0 0 - /sys/kernel/debug mqueue 0 0 0 - /dev/mqueue hugetlbfs 0 0 0 - /dev/hugepages configfs 0 0 0 - /sys/kernel/config fusectl 0 0 0 - /sys/fs/fuse/connections vmware-vmblock 0 0 0 - /run/vmblock-fuse tmpfs 401592 64 401528 1% /run/user/1000 gvfsd-fuse 0 0 0 - /run/user/1000/gvfs
df -h:人性化显示使用情况
root@ubuntu:/home/yanyanzhang/shell_study# df -h Filesystem Size Used Avail Use% Mounted on udev 1.9G 0 1.9G 0% /dev tmpfs 393M 17M 377M 5% /run /dev/sda1 19G 12G 6.0G 67% / tmpfs 2.0G 216K 2.0G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup tmpfs 393M 64K 393M 1% /run/user/1000
# TODO