美文网首页
第七节、磁盘管理

第七节、磁盘管理

作者: 妄语莫言 | 来源:发表于2017-11-28 00:46 被阅读0次

    一、硬盘分区格式化

    inux系统的硬件设备一般存放在/dev目录下,光盘格式为/dev/cdrom
    硬盘如果是老式针式接口一般为/dev/hda
    如果是SATA接口根据数量命名为/dev/sda、/dev/sdb
    sd、hd是硬盘的类型,a、b代表第几块硬盘
    如果把sda进行分区,分成4个分区/dev/sda1、dev/sda2、dev/sda3、dev/sda4
    添加硬盘后
    通过命令fdisk -l查看设备硬盘的挂载情况示例如下

    Disk /dev/sda: 85.9 GB, 85899345920 bytes
    255 heads, 63 sectors/track, 10443 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x000c6099
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          26      204800   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              26        2637    20971520   83  Linux
    /dev/sda3            2637        2898     2097152   82  Linux swap / Solaris
    /dev/sda4            2898       10444    60611584    5  Extended
    /dev/sda5            2898       10444    60610560   83  Linux
    
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    

    上述代码就是新增硬盘后的情况可以看到新硬盘sdb并未分区,需要进行分区操作,对硬盘大小进行切割变成适合使用的大小,命令fdisk /dev/sdb

    [root@yumserver ~]#  fdisk /dev/sdb
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
    Building a new DOS disklabel with disk identifier 0x524b1b29.
    Changes will remain in memory only, until you decide to write them.
    After that, of course, the previous content won't be recoverable.
    
    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
    
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
             switch off the mode (command 'c') and change display units to
             sectors (command 'u').
    
    Command (m for help): 
    

    查看帮助信息

    Command (m for help): m
    Command action
       a   toggle a bootable flag
       b   edit bsd disklabel
       c   toggle the dos compatibility flag
       d   delete a partition                    #删除分区
       l   list known partition types 
       m   print this menu                    #打印该菜单(帮助菜单)
       n   add a new partition             #增加一个新的分区
       o   create a new empty DOS partition table  #创建新的空的DOS磁盘
       p   print the partition table                             #打印硬盘的分区表
       q   quit without saving changes                     #退出不保存
       s   create a new empty Sun disklabel            #创建新的空的磁盘表
       t   change a partition's system id 
       u   change display/entry units
       v   verify the partition table
       w   write table to disk and exit                       #保存分区信息并退出
       x   extra functionality (experts only)
    

    根据步骤创建分区并选择分区类型以及分配磁盘大小

    Command (m for help): n
    Command action
       e   extended                      #扩展分区
       p   primary partition (1-4)  #主分区,只能分4块,从1到4
    p
    Partition number (1-4): 1     #选择分区号
    First cylinder (1-2610, default 1):     #选择开始的磁道,直接回车表示从默认1开始
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +10G  #分配大小10G
    
    Command (m for help): w   #结束并保存分区信息
    

    下一步需要经硬盘进行格式化指定里面的文件操作系统mkfs.ext4 /dev/sdb1,让系统可以读取硬盘里面的信息
    最后需要把格式化完成的分区挂载到相应的目录下,将分区和使用的目录进行关联,一般用命令df -h查看分区硬盘的挂载使用情况

    [root@yumserver ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda5        57G  1.4G   53G   3% /
    tmpfs           491M     0  491M   0% /dev/shm
    /dev/sda1       194M   28M  157M  15% /boot
    /dev/sda2        20G   11G  7.8G  59% /data
    

    新建目录并把分区挂载到目录下,将分区和使用的目录进行关联

    [root@yumserver ~]#  mkdir /data1
    [root@yumserver ~]# mount /dev/sdb1 /data1   
    [root@yumserver ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda5        57G  1.4G   53G   3% /
    tmpfs           491M     0  491M   0% /dev/shm
    /dev/sda1       194M   28M  157M  15% /boot
    /dev/sda2        20G   11G  7.8G  59% /data
    /dev/sdb1       9.9G  151M  9.3G   2% /data1
    

    补充查看目录大小

    [root@yumserver data1]# du -sh /etc
    25M     /etc
    
    磁盘配额

    限制每个用户使用磁盘存储空间的大小

    • 第一步开启uquota权限,编辑/etc/fatab文件,将挂载信息语句的权限设置defualt修改为defualt,uquota,表示针对该分区开启磁盘配额限制,保存后重启系统在RHEL5/6版本该权限是usrquo.
    • 第二步使用磁盘配额限制命令xfs_quota,分为软硬两种限制
      软限制:在日志文件中写入告警信息
      硬限制:真正限制用户使用存储资源
      具体命令示例如下:
      xfs_quota -x -c bsoft=3m bhart=6m isoft=3 ihard=6 linuxprobe /boot
      参数x表示专家模式
      参数c表示非交互模式输入命令
      bsoft block soft 针对block块的软限制,限制文件大小
      bhard block hard 针对block块的硬限制
      isoft inode soft 针对inode的软限制,限制文件个数
      ihard inode hard 针对inode的硬限制
      最后面跟针对的用户以及目录
    • 修改磁盘配额增加配额上限命令edquota
    [root@yumserver data]#  edquota   -u  linuxprobe
    Disk quotas for user linuxprobe (uid 1000):
    Fliesystem              blocks       soft      hard      inodes     soft       hard
    /dev/sda1                6144        3072    6144             1         3             6
    #Fliesystem表示对应的设备
    #blocks 表示当前已使用的大小
    # inodes 表示当前已使用的文件个数
    #soft/hard 表示针对不同对象的软硬限制,允许的个数及最大的个数
    #直接在该文件中修改soft/hard 的参数后保存重启系统即可
    

    二、文件系统相关的说明

    Linux文件系统一般有:ext2,ext3,ext4,xfs
    一般5.X以前版本支持ext2/ext3,6.X版本支持ext5,7.X版本支持xfs
    xfs文件系统和ext4性能相当,但可以支持更大的存储空间达到18EB,并且xfs不支持LVM的硬盘缩小功能.
    文件系统创建完成后一般由两部分组成,存储文件具体信息的块block以及存放文件关键信息(如文件名,属性,存储位置)的索引inode

    查看文件系统block/inode信息的命令
    [root@yumserver data]# dumpe2fs /dev/sda1 |grep -E -i "block size|inode size"
    dumpe2fs 1.41.12 (17-May-2010)
    Block size:               1024
    Inode size:               128
    
    查看文件的inode值,列举文件的第一个参数,
    [root@yumserver data]# ls -il
    total 40
    1179650 drwxr-xr-x  7 root  root   4096 Aug 15 23:53 CentOS6.5
    1179649 drwxr-xr-x  2 root  root   4096 Aug 15 15:03 dvd1
    1048588 drwxr-xr-x  2 root  root   4096 Aug 15 15:03 dvd
    
    查看分区inode使用情况
    [root@yumserver data]# df -ih
    Filesystem     Inodes IUsed IFree IUse% Mounted on
    /dev/sda5        3.7M   46K  3.6M    2% /
    tmpfs            123K     1  123K    1% /dev/shm
    /dev/sda1         50K    38   50K    1% /boot
    /dev/sda2        1.3M  6.3K  1.3M    1% /data
    

    生产案例

    /var/spool/clientmqueue文件过多导致inode被消耗尽。no spaceleft on device.
    思路:文件哪里来的?定时任务没追加>/dev/null 2>&1
    当一个定时任务执行时候会给root发送邮件,一般sendmail邮件服务是不开启的,所以定时任务发送的邮件会临时对方在 /var/spool/ckientmqueue/,时间长了会吧inode消耗完。
    解决办法:1)先手动删除目录下所有文件,然后设置定时任务定时自动删除目录下文件
    当目录中文件过多时候无法用rm -f *删除会直接退出目录,此时先切换到目录下然后ls|xargs rm -f 删除, find ./ -type -f|xarges rm -f也可以用来删除大量文件
                    2)查看定时任务命令添加>/dev/null 2>&1
    
    
    linux系统中设备文件命名udev服务
    • SCSI/SATA/U盘 /dev/sd sda sdb sdc
    • IDE /dev/hd hda hdb
    • 打印机 /dev/lp
    • 光盘 /dev/cdrom
    • 鼠标 /dev/mouse
      #######MBR补充
      MBR(Main Boot Record 主引导记录区)位于整个硬盘的0磁道0柱面1扇区。不过,在总共512字节的主引导扇区中,MBR只占用了其中的446个字节,另外的64个字节交给了 DPT(Disk Partition Table硬盘分区表),最后两个字节“55,AA”是分区的结束标志。这个整体构成了硬盘的主引导扇区
      DPT(Disk Partition Table硬盘分区表)为64字节,每个分区信息占用16个字节因此最多只能保存4个分区信息.
    • 主分区:也叫引导分区,最多可能创建4个,当创建四个主分区时候,就无法再创建扩展分区了,当然也就没有逻辑分区了。主分区是独立的,对应磁盘上的第一个分区
    • 扩展分区:除了主分区外,剩余的磁盘空间就是扩展分区了,扩展分区是一个概念,实际上是看不到的。当整个硬盘分为一个主分区的时候,就没有了扩展分区。
    • 逻辑分区:在扩展分区上面,可以创建多个逻辑分区。逻辑分区相当于一块存储截止,和操作系统还有别的逻辑分区、主分区没有什么关系,是“独立的”
      分区号1-4是给主分区和扩展分区使用的,逻辑分区号只能从5向后排
      主分区P,扩展分区E,因此一块硬盘分区情况一般是:
      1P
      1P+1E
      2P+1E
      3P+1E
      4P
      几种情况.
    让挂载信息永久生效的文件/etc/fstab

    一般格式如下:设备名+挂载目录名+具体文件系统的格式+文件属性信息+0+0
    第一个0表示是否进行备份
    第二个0表示是否进行校验
    光盘默认的格式iso9660
    设备名必须是带/dev的全路径名称
    /dev/sda1 /media/cdrom iso9660 defaults 0 0
    为了防止出错可以使用设备的唯一表示符UUID来挂载设备

    • 第一步查看设备的UUID,命令blkid
    [root@localhost sh]# blkid
    /dev/sda1: UUID="36a53f15-5f73-4e86-bafc-f50476e7f610" TYPE="xfs" 
    /dev/sda2: UUID="8dvEN2-DedW-aGmd-Am2I-Y1KL-iEV4-1e3IV1" TYPE="LVM2_member" 
    /dev/sr0: UUID="2014-05-07-03-58-46-00" LABEL="RHEL-7.0 Server.x86_64" TYPE="iso9660" PTTYPE="dos" 
    /dev/mapper/rhel-root: UUID="c6a60186-977a-4669-91ed-aedc8a8529b8" TYPE="xfs" 
    /dev/mapper/rhel-swap: UUID="7baf38fd-bf2b-4974-a81d-c3e819b500ee" TYPE="swap"
    
    • 第二步将配置文件中文件位置如/dev/sda1修改为UUID
      UUID="7baf38fd-bf2b-4974-a81d-c3e819b500ee" /media/cdrom iso9660 defaults 0 0

    相关文章

      网友评论

          本文标题:第七节、磁盘管理

          本文链接:https://www.haomeiwen.com/subject/rwwxbxtx.html