第七节、磁盘管理

一、硬盘分区格式化

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

你可能感兴趣的:(第七节、磁盘管理)