@mrz1
2017-12-14T07:29:13.000000Z
字数 9672
阅读 1949
笔记
cat /etc/mtab``df``lsblk``mount
-t vsftype:指定要挂载的设备上的文件系统类型 (通常不用写;设备能自己识别)-r: readonly,只读挂载-w: read and write, 读写挂载(一般不谢 默认)-n: 不更新/etc/mtab,mount不可见-a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)-L 'LABEL': 以卷标指定挂载设备-U 'UUID': 以UUID指定要挂载的设备-B, --bind: 绑定目录到另一个目录上-o options:(挂载文件系统的选项),多个选项使用逗号分隔async:异步模式(默认)sync:同步模式,内存更改时,同时写磁盘atime/noatime:包含目录和文件(适合网站文件不更新)diratime/nodiratime:目录的访问时间戳auto/noauto:是否支持自动挂载,是否支持-a选项exec/noexec:是否支持将文件系统上运行应用程序(是否禁用可运行脚本)dev/nodev:是否支持在此文件系统上使用设备文件suid/nosuid:是否支持suid和sgid权限remount:重新挂载(即时生效)ro:只读rw:读写user/nouser:是否允许普通用户挂载此设备,/etc/fstab使用acl:启用此文件系统上的acl功能loop: 使用loop设备(contos7不需要;添加loop设备/boot/grub/grub.conf,kernel最后添加max_loop=100;默认100个)defaults:相当于rw, suid, dev, exec, auto, nouser, async
stat 文件 // 查看三个时间mount -o noatime /dev/sdb2 /mnt/sdb2 atime 时间不会更新
centos6 安装系统后,手工分区ext文件系统无ACL功能tune2fs -o acl /dev/sdb2 //加acl 永久生效tune2fs -o ^acl /dev/sdb2 //取消aclmount -o remount,acl /mnt/sdb2 //加acl 临时生效
[root@centos6 ~]#umount /dev/sdb2 //有用户正在使用 无法删除
umount: /mnt/sdb2: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@centos6 ~]#lsof /mnt/sdb2/ // 查看当前是谁在使用
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 3005 root cwd DIR 8,18 4096 2 /mnt/sdb2
[root@centos6 ~]#fuser -v /mnt/sdb2 // 查看当前是谁在使用
USER PID ACCESS COMMAND
/mnt/sdb2: root 3005 ..c.. bash
[root@centos6 ~]#w //查看当前谁在登录使用
07:40:23 up 59 min, 2 users, load average: 0.07, 0.03, 0.01
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.109.1 07:14 0.00s 0.60s 0.09s w
root pts/1 192.168.109.1 07:35 3:21 0.05s 0.05s -bash
[root@centos6 ~]#echo Please get out > /dev/pts/1 //发消息给pts/1 请离开
[root@centos6 ~]#fuser -km /mnt/sdb2 // 强势踢走使用的用户
USER PID ACCESS COMMAND
/mnt/sdb2: root 3005 ..c.. bash
配置文件系统体系
被mount、fsck和其它程序使用
系统重启时保留文件系统体系
可以在设备栏使用文件系统卷标
使用mount -a 命令挂载/etc/fstab中的所有文件系统
1 创建分区fdisk nt822 文件系统mkswap /dev/sdd1 -L SWAP_SDD13 配置文件修改优先级vim /etc/fstabUUID=2979b3c4-c0c5-44b1-bf21-a213f90d80a0 swap swap pri=10 0 04 生效swapon -aswapon -s 查看5 删除 swap1)swapoff /dev/sdd1 先禁用它2)vim /etc/fstab删除对应行3)fdisk /dev/sdd 删除分区
创建ISO文件
cp /dev/cdrom /root/centos7.iso
mkisofs -r -o /root/etc.iso /etc //把一个目录打包成iso
两个包下载下来制作yum源可以,但制作iso文件缺少但是驱动不了;
官方脚本制作ISO 脚本(这个是centos6的。因为contos7都已经安装好了,不需要) https://wiki.centos.org/zh-tw/TipsAndTricks/CDtoDVDMedia?highlight=%28mkdvd%29
过程-下载缺少包-之后 --help查看帮助
内存空间使用状态:free [OPTION]-m: 以MB为单位-g: 以GB为单位[root@centos7 ~]#freetotal used free shared buff/cache availableMem: 1075496 648732 74716 8004 352048 204696Swap: 2097148 576 2096572total(总)used(已经)free(剩余)shared(共享)buff/cache(缓冲与缓存)available(真正可用)文件系统空间占用等信息的查看工具:df[OPTION]... [FILE]...-H 以1000为单位-T 文件系统类型-h: human-readable-i:inodes instead of blocks-P: 以Posix兼容的格式输出查看某目录总体空间占用状态:du [OPTION]... DIR-h: human-readable-s: summary (总大小)--max-depth=N (层级)
dd命令:convert and copy a file用法:dd if=/PATH/FROM/SRC of=/PATH/TO/DESTbs=#:block size, 复制单元大小count=#: 复制多少个bsof=file 写到所命名的文件而不是到标准输出if=file 从所命名文件读取而不是从标准输入bs=size 指定块大小(既是是ibs也是obs)ibs=size 一次读size个byteobs=size 一次写size个bytecbs=size 一次转化size个byteskip=blocks 从开头忽略blocks个ibs大小的块seek=blocks 从开头忽略blocks个obs大小的块count=n只拷贝n个记录
conv=conversion[,conversion...] 用指定的参数转换文件转换参数:ascii 转换EBCDIC 为ASCIIebcdic 转换ASCII 为EBCDIClcase 把大写字符转换为小写字符ucase 把小写字符转换为大写字符nocreat 不创建输出文件(必须有文件)noerror 出错时不停止notrunc 不截短输出文件sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐备份MBR:dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1破坏MBR中的bootloader:dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,实现如下:#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc备份:dd if=/dev/sdx of=/dev/sdy将本地的/dev/sdx整盘备份到/dev/sdydd if=/dev/sdx of=/path/to/image将/dev/sdx全盘数据备份到指定路径的image文件dd if=/dev/sdx | gzip >/path/to/image.gz备份/dev/sdx全盘数据,并利用gzip压缩,保存到指定路径恢复:dd if=/path/to/image of=/dev/sdx将备份文件恢复到指定盘gzip -dc /path/to/image.gz | dd of=/dev/sdx将压缩的备份文件恢复到指定盘拷贝内存资料到硬盘(/dev/mem内存)dd if=/dev/mem of=/root/mem.bin bs=1024将内存里的数据拷贝到root目录下的mem.bin文件从光盘拷贝iso镜像dd if=/dev/cdrom of=/root/cd.iso拷贝光盘数据到root文件夹下,并保存为cd.iso文件销毁磁盘数据dd if=/dev/urandom of=/dev/sda1利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据,执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行得到最恰当的block sizedd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.filedd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.filedd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小测试硬盘写速度dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000测试硬盘读速度dd if=/root/1Gb.file bs=64k | dd of=/dev/null修复硬盘dd if=/dev/sda of=/dev/sda当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生,且这个过程是安全高效的
创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项
写一个脚本,完成如下功能:
(1)列出当前系统识别到的所有磁盘设备
(2)如磁盘数量为1,则显示其空间使用信息否则,则显示最后一个磁盘上的空间使用信息
将CentOS6的CentOS-6.8-x86_64-bin-DVD1.iso和CentOS-6.8-x86_64-bin-DVD2.iso两个文件,合并成一个CentOS-6.8-x86_64-Everything.iso文件,并将其配置为yum源
1. 新建分区2. 建立文件系统3. mkdir /mnt/home4. mount /dev/sda6 /mnt/home 挂载5. cp -av /home/* /mnt/home 复制6. tar cvf /app/home.tar /home 打包 scp remote 发送到远程7. init 1 断开网络,自己在远程就不要执行。通知用户8. rm -rf /home/*9. vim /etc/fstab UUID=a0b529ef-85f3-49ce-89d2-3469ad16692c /home ext4 defaults 0 010. mount -a11. umount /mnt/home12. init -5 换到原有模式13. 发送通知 迁移完毕
1. 启用配额功能修改磁盘配额 UUID=a0b529ef-85f3-49ce-89d2-3469ad16692c /home ext4 usrquota,grpquota 0 0mount -o remount /home/ 重新挂载生效2. 创建配额数据库quotacheck -cug /home/ 创建数据库[root@centos6 home]#getenforcePermissive如果创建失败 查看下它是否是Permissive,不是修改/etc/sysconfig/selinux或者/etc/selinux/c onfig当时不会生效;执行 setenforce 0 立即生效3. 启用数据库[root@centos6 home]#quotaon /home/ //启用[root@centos6 home]#quotaon -p /home/ //查看数据库是否启用group quota on /home (/dev/sda6) is onuser quota on /home (/dev/sda6) is on4. 指定用户空间限制edquota feiFilesystem blocks soft hard inodes soft hard/dev/sda6 922844 800000 1000000 206 215 219所有者是谁 占得空间就是谁的 前面是空间 后面是文件个数edquota -p fei zhang 复制fei 设置zhang的空间配额setquota fei 100000 200000 100 200 设置fei 配额;非交互式式命令[root@centos6 home]#repquota /home/ //默认文件超过限额7天没事,超过七天就不能创建了Block grace time: 7days; Inode grace time: 7days设置组的配额edquota -g 组名删除配额quotaoff /home 禁用删除数据库删除UUID=a0b529ef-85f3-49ce-89d2-3469ad16692c /home ext4 usrquota,grpquota 0 0mount -o remount /home/ 重新挂载生效
综述在内核中执行以文件系统为单位启用对不同组或者用户的策略不同根据块或者节点进行限制执行软限制(soft limit)硬限制(hard limit)初始化分区挂载选项:usrquota、grpquota初始化数据库:quotacheck为用户设定配额执行开启或者取消配额:quotaon、quotaoff直接编辑配额:edquota username在shell中直接编辑:setquota usename 4096 5120 40 50 /foo定义原始标准用户edquota -p user1 user2报告配额状态报告用户调查:quota username配额概述:repquota /mountpoint其它工具:warnquota
RAID:Redundant Arrays of Inexpensive(Independent)Disks(廉价的磁盘阵列)
1988年由加利福尼亚大学伯克利分校(University of California-Berkeley)"A Case for Redundant Arrays of Inexpensive Disks"
多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供
提高IO能力:磁盘并行读写
提高耐用性;磁盘冗余来实现
级别:多块磁盘组织在一起的工作方式有所不同

读、写性能提升;
可用空间:N*min(S1,S2,...)
无容错能力
最少磁盘数:2, 2
它代表了所有RAID级别中最高的存储性能。RAID-0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
特点:使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。对于个人用户,RAID 0也是提高硬盘存储性能的绝佳选择。
缺点:是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。
最少三块
只能坏一块
RAID-4:多块数据盘异或运算值存于专用校验盘
校验位只放在最后一个硬盘 但是坏的几率大,企业淘汰了之后就是RAID-5

读、写性能提升
可用空间:(N-1)*min(S1,S2,...)
有容错能力:允许最多1块磁盘损坏
最少磁盘数:3, 3+(利用率n分之n-1)不太重要东西用
校验位是随机在每块硬盘都有

读、写性能提升
可用空间:(N-2)*min(S1,S2,...)
有容错能力:允许最多2块磁盘损坏
最少磁盘数:4, 4+(利用率n分之n-2)
四块硬盘两块放校验位(磁盘利用率低比5)

读性能提升、写性能略有下降;
可用空间:1*min(S1,S2,...)
有冗余能力
最少磁盘数:2, 2N(利用率50%)
防止物理损坏,不防止操作;两个硬盘数据一样删除都删除始终同步。

最少磁盘数:4, 4+(利用率50%)(有钱企业)(三分之二的失败几率)
多块磁盘先实现RAID0,再组合成RAID1

读、写性能提升
可用空间:N*min(S1,S2,...)/2
有容错能力:每组镜像最多只能坏一块(容错率高于RAID-01)
最少磁盘数:4, 4+(利用率50%)(有钱企业)(三分之一的失败几率)

多块磁盘先实现RAID5,再组合成RAID0

JBOD:Just a Bunch Of Disks
功能:将多块磁盘的空间合并一个大的连续空间使用可用空间:sum(S1,S2,...)
可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式
RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
第一步:创建分区
准备硬盘大小相等硬盘分区fdist /dev/sdan +10G 做RAID记得改IDt 7(7的意思是sda7) L fdwdd if=/dev/sda7 of=/dev/sdc bs=q count=512partx -a /dev/sda ...同步
第二步:创建RAID
mdadm -C /dev/md0 -a yes -l 0 -c 32 -n 3 /dev/sd{a7,b1,c1}-C: 创建模式-a {yes|no}:自动创建目标RAID设备的设备文件-l #:指明要创建的RAID的级别-c CHUNK_SIZE: 指明块大小-n #: 使用#个块设备来创建此RAIDmdadm -D /dev/md0 //查看创建过程详细cat /proc/mdstat //也可以看RAIDblkid 查看的话 有两个uuid 第一个是raid的总id第二个是子idmdadm -Ds > /etc/mdadm.conf //生成这个文件这样开机的话才能找到这个设备
第二步:创建RAID系统
mkfs.ext4 /dev/md0 //创建系统vim /etc/fatab 编辑 --->uuid 挂载点 ext4 defaults 0 0创建挂载点 -->挂载 --> 完成