26-Linux操作实战-磁盘管理-下部
开机自动挂载
方法一、 /etc/fstab
[root@manager /data]$ cat /etc/fstab # # /etc/fstab # Created by anaconda on Tue Oct 8 12:25:01 2019 # # Accessible filesystems, by reference, are maintained under \'/dev/disk\' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=3e88ceb2-c53f-4e2a-9260-933d3c010dac /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 第一列 UUID或设备名称 挂载点 文件系统 挂载参数 是否备份 是否开机磁盘检查
[root@manager /data]$ cd /dev/ [root@manager /dev]$ ls agpgart crash initctl nvram sdb stderr tty17 tty29 tty40 tty52 tty7 vcs vcsa6 autofs disk input oldmem sdb1 stdin tty18 tty3 tty41 tty53 tty8 vcs1 vfio block dm-0 kmsg port sdb2 stdout tty19 tty30 tty42 tty54 tty9 vcs2 vga_arbiter bsg dm-1 log ppp sdb5 tty tty2 tty31 tty43 tty55 ttyS0 vcs3 vhci btrfs-control dri loop-control ptmx sdc tty0 tty20 tty32 tty44 tty56 ttyS1 vcs4 vhost-net bus fb0 mapper pts sg0 tty1 tty21 tty33 tty45 tty57 ttyS2 vcs5 vmci cdrom fd mcelog random sg1 tty10 tty22 tty34 tty46 tty58 ttyS3 vcs6 vsock centos full mem raw sg2 tty11 tty23 tty35 tty47 tty59 uhid vcsa zero char fuse mqueue rtc sg3 tty12 tty24 tty36 tty48 tty6 uinput vcsa1 console hidraw0 net rtc0 shm tty13 tty25 tty37 tty49 tty60 urandom vcsa2 core hpet network_latency sda snapshot tty14 tty26 tty38 tty5 tty61 usbmon0 vcsa3 cpu hugepages network_throughput sda1 snd tty15 tty27 tty39 tty50 tty62 usbmon1 vcsa4 cpu_dma_latency hwrng null sda2 sr0 tty16 tty28 tty4 tty51 tty63 usbmon2 vcsa5 [root@manager /dev]$ parted /dev/sdc GNU Parted 3.1 Using /dev/sdc Welcome to GNU Parted! Type \'help\' to view a list of commands. (parted) gpt align-check TYPE N check partition N for TYPE(min|opt) alignment help [COMMAND] print general help, or help on COMMAND mklabel,mktable LABEL-TYPE create a new disklabel (partition table) mkpart PART-TYPE [FS-TYPE] START END make a partition name NUMBER NAME name partition NUMBER as NAME print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition quit exit program rescue START END rescue a lost partition near START and END resizepart NUMBER END resize partition NUMBER rm NUMBER delete partition NUMBER select DEVICE choose the device to edit disk_set FLAG STATE change the FLAG on selected device disk_toggle [FLAG] toggle the state of FLAG on selected device set NUMBER FLAG STATE change the FLAG on partition NUMBER toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER unit UNIT set the default unit to UNIT version display the version number and copyright information of GNU Parted (parted) mktable gpt (parted) p Model: VMware Virtual disk (scsi) Disk /dev/sdc: 17.2GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags (parted) mkpart primary 0 10G Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? I (parted) p Model: VMware Virtual disk (scsi) Disk /dev/sdc: 17.2GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 17.4kB 10.0GB 10000MB primary (parted) mkpart primart 10G 16G (parted) P Model: VMware Virtual disk (scsi) Disk /dev/sdc: 17.2GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 17.4kB 10.0GB 10000MB primary 2 10.0GB 16.0GB 6000MB primart (parted) rm 1 (parted) p Model: VMware Virtual disk (scsi) Disk /dev/sdc: 17.2GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 2 10.0GB 16.0GB 6000MB primart (parted) q Information: You may need to update /etc/fstab.
parted 硬盘分区命令
parted /dev/sdc
mktable (mklabed) 创建磁盘分区表
mktable gpt
p print 显示磁盘分区信息
mkpart (make partition) 创建分区
rm 删除分区
q quit 退出
Error:/dev/sdc:unrecognised disk label 无法识别的磁盘分区表
(parted) mktable gpt
(patred) mkpart primary 0 10G
(parted) mkpart primary 10G 16G
企业案例:java 环境内存不够用,大量占用swap
[root@manager /dev]$ free -h total used free shared buff/cache available Mem: 15G 224M 15G 8.9M 183M 15G Swap: 8.0G 0B 8.0G [root@manager /dev]$
第一步、创建大文件 1G
dd if=/dev/zero of
[root@manager /dev]$ dd if=/dev/zero of=/tmp/1024M bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 0.605703 s, 1.8 GB/s [root@manager /dev]$ ll -h /tmp/1024m ls: cannot access /tmp/1024m: No such file or directory [root@manager /dev]$ ll -h /tmp/1024M -rw-r--r--. 1 root root 1.0G Dec 17 13:23 /tmp/1024M [root@manager /dev]$ chmod 600 /tmp/1024M [root@manager /dev]$ ll -h /tmp/1024M -rw-------. 1 root root 1.0G Dec 17 13:23 /tmp/1024M [root@manager /dev]$
[root@manager /tmp]$ dd if=/dev/zero of=/tmp/2g bs=1G count=2
2+0 records in
2+0 records out
2147483648 bytes (2.1 GB) copied, 1.77837 s, 1.2 GB/s
[root@manager /tmp]$ ll -h /tmp/2g
-rw-r–r–. 1 root root 2.0G Dec 17 13:26 /tmp/2g
第二步、生成swap
[root@manager /tmp]$ file /tmp/2g /tmp/2g: data [root@manager /tmp]$ mkswap /tmp/2g Setting up swapspace version 1, size = 2097148 KiB no label, UUID=2e12ca49-62cb-4eca-bd75-1ab3c69d4877 [root@manager /tmp]$ file /tmp/2g /tmp/2g: Linux/i386 swap file (new style), version 1 (4K pages), size 524287 pages, no label, UUID=2e12ca49-62cb-4eca-bd75-1ab3c69d4877 [root@manager /tmp]$ free -h total used free shared buff/cache available Mem: 15G 223M 12G 8.9M 3.3G 14G
第三步、激活swap、永久激活swap
[root@manager /tmp]$ swapon /tmp/2g [root@manager /tmp]$ free -h total used free shared buff/cache available Mem: 15G 224M 12G 8.9M 3.3G 14G Swap: 9G 0B 9G [root@manager /tmp]$ swapon -s Filename Type Size Used Priority /dev/dm-1 partition 8388604 0 -1 /tmp/2g file 2097148 0 -2
云服务器默认没有SWAP空间
永久激活swap
方法一、 /etc//rc.local
[root@manager /tmp]$ swapon /tmp/2g
方法二、 /etc/fstab
排查大文件
[root@manager /var]$ du -sh /* 0 /app 0 /bin 110M /boot 0 /data 0 /dev 31M /etc 372K /exam 60K /home 0 /lib 0 /lib64 0 /media 0 /mnt 16K /opt du: cannot access ‘/proc/1982/task/1982/fd/4’: No such file or directory du: cannot access ‘/proc/1982/task/1982/fdinfo/4’: No such file or directory du: cannot access ‘/proc/1982/fd/4’: No such file or directory du: cannot access ‘/proc/1982/fdinfo/4’: No such file or directory 0 /proc 60K /root 8.9M /run 0 /sbin 0 /srv 0 /sys 3.1G /tmp 957M /usr 9.5G /var [root@manager /var]$ du -sh /* |grep G du: cannot access ‘/proc/1996/task/1996/fd/4’: No such file or directory du: cannot access ‘/proc/1996/task/1996/fdinfo/4’: No such file or directory du: cannot access ‘/proc/1996/fd/4’: No such file or directory du: cannot access ‘/proc/1996/fdinfo/4’: No such file or directory 3.1G /tmp 9.5G /var [root@manager /var]$ du -sh /var/* 0 /var/adm 50M /var/cache 0 /var/crash 8.0K /var/db 0 /var/empty 0 /var/games 0 /var/gopher 0 /var/kerberos 49M /var/lib 0 /var/local 0 /var/lock 9.4G /var/log 0 /var/mail 0 /var/nis 0 /var/opt 0 /var/preserve 0 /var/run 16K /var/spool 0 /var/tmp 0 /var/yp [root@manager /var]$ du -sh /var/* |grep G 9.4G /var/log [root@manager /var]$ du -sh /* 0 /app 0 /bin 110M /boot 0 /data 0 /dev 31M /etc 372K /exam 60K /home 0 /lib 0 /lib64 0 /media 0 /mnt 16K /opt du: cannot access ‘/proc/2032/task/2032/fd/4’: No such file or directory du: cannot access ‘/proc/2032/task/2032/fdinfo/4’: No such file or directory du: cannot access ‘/proc/2032/fd/4’: No such file or directory du: cannot access ‘/proc/2032/fdinfo/4’: No such file or directory 0 /proc 60K /root 8.9M /run 0 /sbin 0 /srv 0 /sys 3.1G /tmp 957M /usr 9.5G /var [root@manager /var]$ du -sh /var/log/*
磁盘故障案例:
1、磁盘空间不足
block 满了 df -h 排查流程 du -sh 一层一层排查最后打到大文件或目录,确认之后删除
inode满了 (定时任务) 找出系统中比较大的目录(1M) 目录下面会有大量小文件 find
显示 no space left on device , df -h 磁盘空间还有剩余,是什么原因?
因为文件没有被彻底删除 (硬链接数为0,进程调用数不为0) lsof |grep delete 重启对应服务
1072 df -h 1073 du -sh / 1074 du -sh /* 1075 du -sh /* |grep G 1076 du -sh /var/* 1077 du -sh /var/* |grep G 1079 du -sh /* 1080 du -sh /var/log/*
[root@manager /var]$ ll /var/log/10g -rw-r--r--. 1 root root 10075832320 Dec 17 13:41 /var/log/10g [root@manager /var]$ df -h /var/log/10g Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 42G 14G 28G 33% / [root@manager /var]$ cd /var/log/ [root@manager /var/log]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 42G 14G 28G 33% / devtmpfs 7.8G 0 7.8G 0% /dev tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 7.8G 8.9M 7.8G 1% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/sda1 497M 135M 363M 28% /boot tmpfs 1.6G 0 1.6G 0% /run/user/0 /dev/sdb1 3.0G 33M 3.0G 2% /data [root@manager /var/log]$ rm -rf /var/log/10g [root@manager /var/log]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 42G 4.2G 38G 10% / devtmpfs 7.8G 0 7.8G 0% /dev tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 7.8G 8.9M 7.8G 1% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/sda1 497M 135M 363M 28% /boot tmpfs 1.6G 0 1.6G 0% /run/user/0 /dev/sdb1 3.0G 33M 3.0G 2% /data
查看谁使用 exam.txt 占用
[root@manager ~]# yum install -y lsof
[root@manager ~]# lsof |grep /exam/exam.txt [root@manager ~]# cd /exam/
模拟: seq 5000000 /var/log/messages
排查流程:
[root@manager ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 42G 8.2G 34G 20% / devtmpfs 7.8G 0 7.8G 0% /dev tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 7.8G 8.9M 7.8G 1% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/sda1 497M 135M 363M 28% /boot /dev/sdb1 3.0G 33M 3.0G 2% /data tmpfs 1.6G 0 1.6G 0% /run/user/0 [root@manager ~]$ du -sh /*|grep G du: cannot access ‘/proc/20384/task/20384/fd/4’: No such file or directory du: cannot access ‘/proc/20384/task/20384/fdinfo/4’: No such file or directory du: cannot access ‘/proc/20384/fd/4’: No such file or directory du: cannot access ‘/proc/20384/fdinfo/4’: No such file or directory 3.1G /tmp 4.2G /var [root@manager ~]$ du /var/* |grep G 16 /var/lib/yum/yumdb/p/c6dab79e438b770023eb4bc252c722609b17ed3d-perl-Getopt-Long-2.40-3.el7-noarch 8 /var/lib/yum/yumdb/G/5d1d730c5f843277da5723b9d79e05fa10cd8019-GeoIP-1.5.0-11.el7-x86_64 8 /var/lib/yum/yumdb/G 0 /var/lib/vmware/VGAuth/aliasStore 0 /var/lib/vmware/VGAuth [root@manager ~]$ du -sh /var/* |grep G 4.0G /var/4096M [root@manager ~]$
[us01@manager ~]$ ll /var/log/messages -rw------- 1 root root 167676 Dec 18 12:20 /var/log/messages [us01@manager ~]$ lsof|grep messages [us01@manager ~]$ lsof |grep mesages [us01@manager ~]$ systemctl restart rsyslog.service ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to manage system services or units. Authenticating as: root Password: ==== AUTHENTICATION COMPLETE === [us01@manager ~]$ [us01@manager ~]$ [us01@manager ~]$ lsof |grep messages [us01@manager ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 30G 1.7G 27G 7% / devtmpfs 1.8G 0 1.8G 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 1.8G 504K 1.8G 1% /run tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup tmpfs 365M 0 365M 0% /run/user/0 [us01@manager ~]$
1000G rm -f tomccat
彻底删除
1、硬链接为0 (rm)
2、进程调用数为1 (重启服务)
总结:
1、raid 级别 场景
2、磁盘分区 格式化 挂载
3、增加swap
4、磁盘空间不足 no space left on device