【linux相识相知】独立硬盘冗余阵列-RAID

独立硬盘冗余阵列(RAID,Redundant Array of Independant Disks),旧称为廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks)。1987年美国加州伯克利分校的一篇名为《A Case for Redundant Arrays of Inexpensive Disk(RAID)》论文诞生,这标志着RAID技术的开始。

那么什么是RAID呢?简单的来讲就是把多个硬盘组合起来,成为一个硬盘阵列组,操作系统会把它当做是一个硬盘,其性能能够达到甚至超过单个昂贵容量大的硬盘。RAID提供了多种硬盘组合的方式,相比单个硬盘来说,提高了硬盘得I/O能力。多个磁盘之间相互冗余,提高了耐用性。

RAID的硬盘组合方式有:RAID-0,RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-7,RAID10,RAID-01,RAID-50,RAID-53,RAID-60,JBOD。

RAID的实现模式

Software RAID:

软件磁盘阵列,由CPU处理和协调一个RAID里面各个硬盘的作业,这样就会给CPU带来较多的运算压力,分为3种:

1)基于主板的的磁盘阵列:通常上是由主板上的芯片组提供RAID功能。

2)硬件辅助磁盘阵列:需要RAID卡和相关厂商提供的驱动程序,RAID功能是由驱动程序和CPU运算来提供

3)操作系统的RAID功能:Linux、windows Server等操作系统内置的RAID功能

虽然软RAID实现的有多种,但是在生产环境还是不建议使用的。

Hardware RAID:
硬件磁盘阵列,在RAID卡上内置了CPU处理器,这样就不占用服务器的CPU了。一般硬件磁盘阵列都会有备份的电源模块和NVRAM(非易失性内存),当系统断掉后,备份电源开始供电,将硬盘读写的日志保存在内存中,当系统恢复,备份电源关闭供电,再在NVRAM读取日志数据,继续完成上次断电前没有完成的作业。

常用RAID介绍

常用的RAID有:RAID0,RAID-1,RAID-5,RAID6,RAID-10,RAID50。

RAID0

RAID0,也称条带卷(striping)。在RAID0中,数据会被切成片,按一定顺序会被写到所有的磁盘里面,如下图:

若一片数据被切割成了A1-A8,将存储在一个由2块Disk组成的RAID0,那么第一段数据块A1会被存储在Disk0中,第二段数据块A2会被存储在Disk1中,第三段数据块会被存储在Disk0中,以此类推,这一片数据会被均分到2块磁盘上。

RAID0的优缺点:

1)速度快,写和读的能力得到了提高;

2)RAID0没有冗余的能力,一旦一块磁盘出现了故障,则所有的数据都将不会恢复;

3)RAID0需要N块磁盘才能实现(N>=2);

4)能够存储数据的大小为N*min(S1,S2,S3,S4....)

在RAID0中有两个重要的参数:

条带宽度:stripe width,它指的是可以被并行写入的数据块的个数,也就是实现RAID0中磁盘的个数;

条带大小:stripe size,它指的是每次写入磁盘的数据块的大小,大小一般为2KB或者512KB甚至更大,size越小,数据被分割的次数就越多。stripe size对性能是有一定的影响的,在生产环境中,需要调整好。

RAID1

RAID1,镜像化,在RAID1中,数据会被复制成多份,存储在多个磁盘上,如下图:

若一片数据将要被存储,数据会被复制成多份(取决RAID1的磁盘个数),然后存储到每一个磁盘上。

RAID1的优缺点:

1)冗余性和数据的可靠性最高,只要不是磁盘同时损坏了,一般都不会带来数据丢失的问题;

2)RAID1的容量取决容量最小的那个磁盘,写入速度也是取决于最小的那个磁盘,较大的磁盘的剩余空间可       以分区使用,不会造成浪费;

3)RAID1的读取速度理论上来说是磁盘个数的倍数;

4)RAID1需要N块磁盘才能实现(N>=2)

5)能够存储数据的大小为min(S1,S2,S3...)

RAID3

RAID3,数据类似于RAID0,被条带化的存储在多个磁盘中,数据以字节为单位,与RAID0不同的是,RAID3单独使用了一块独立的磁盘用来存储数据的奇偶校验值,如下图所示:

数据被切片存储在Disk0-2上,同时计算处奇偶校验值存储在Disk3上,这样即使Disk0-2中损坏一块磁盘,也能根据奇偶校验值得到损坏磁盘的数据。

RAID3的优缺点:
1.较高的容错能力;

2.不适合写入操作较多的情景,会给校验盘带来一定的负载,适合读取操作较多的应用环境;

3.RAID3需要N块磁盘(N>=3);

4.能够存储数据的大小为(N-1)*min(S1,S2,S3,S4....)。

RAID4

和RAID3类似,RAID4不是以字节为存取单位,RAID4的数据以块(一般为512字节)为单位,如下图:

以块为单位带来的好处就是,减少了奇偶检验的次数,比如,如果一段数据的大小为10个字节,在RAID3上可能需要计算2次奇偶检验值了,但是在RAID4上,10个字节都会被放在第一个磁盘上,并不需要计算。

RAID4的优缺点:

1.较高的容错能力;

2.提高了小量数据的I/O能力;

3.RAID4需要N块磁盘(N>=3);

4.能够存储数据的大小为(N-1)*min(S1,S2,S3,S4....)。

RAID5

RAID5可以理解成是RAID0和RAID1的折中方案,把数据条带化后存储,并且将数据奇偶检验值存储在所有的硬盘上,如下图:

数据被条带化存储到了磁盘上,并且每个磁盘上都能够存储奇偶检验值,其读写速度和RAID0差不多,可能写的时候要慢一点,比较要计算奇偶检验,这样,即使坏掉一块磁盘,只需要更换上好的磁盘,RAID会利用剩下奇偶检验去重建磁盘上的数据。

RAID5的优缺点:

1)较高的容错能力;

2)读写速度快;

3)RAID4需要N块磁盘(N>=3);

4)能够存储数据的大小为(N-1)*min(S1,S2,S3,S4....)。

RAID6

与RAID5类似,只是增加了第二个独立的奇偶检验信息块,使用了两种不同的奇偶检验算法,如下图所示:

数据仍然是被条带化得存储在磁盘上,但是会计算出两个独立的奇偶检验值,相对于RAID5来说有更多的I/O操作和计算量,所以RAID6通常不会以软件来实现,一般会使用硬件实现,RAID6也是最常见的磁盘阵列。

RAID6的优缺点:

1)较高的容错能力

2)同一RAID6中最多运行同时损坏2块磁盘,更换磁盘后,数据将被重新计算写入;

3)RAID6需要N个磁盘(N>=4);

4)RAID容量为(N-2)*min(s1,s2,s3,...)

RAID 01

RAID 01是一种混合的磁盘阵列,即是RAID0和RAID1的混合,先做条带,再做镜像:

RAID01中,同组RAID0只要出现一个磁盘损坏,那么这个RAID 0就不能你使用了,值剩下其他组的磁盘运作,可靠性较低。

RAID01的优缺点:

1)数据可靠性低

2)RAID01需要N个磁盘(N>=4)

RAID 10

和RAID 01相反,RAID10是先做RAID1,再做RAID0,如下图所示:

RAID10和RAID01在读写速度上没有什么太大的差别,但是RAID10的数据安全性比较高,若下图左边那组RAID1中磁盘损坏了一个,另外一个也能用,右边那组RAID1再损坏一个数据也是恢复的,除非一组RAID1中的磁盘都坏掉了。

RAID 10的优缺点:

1)较高的容错能力

2)RAID10需要N个磁盘(N>=4)

RAID 50

RAID 50是RAID5和RAID0的组合,先做RAID5,再做RAID0,RAID 5至少需要3颗硬盘,因此要以多组RAID 5构成RAID 50,至少需要6颗硬盘,如下图。

在底层的任意一组或者多组的RAID5中出现了一个磁盘的损坏是可以接受的,但是若出现了2个或者以上的磁盘损坏,整个RAID50就会损坏。

RAID50的优缺点:

1)较高的容错能力

2)RAID10需要N个磁盘(N>=6)

JBOD

Just a Bunch of Disks,能够将多块磁盘的空间合并起来的一个连续的空间,可靠性较低。

在Linux系统上实现Software RAID

在centos中,使用模块化得工具mdadm,如果没有可以使用:

yum -y install mdadm

基本用法如下:

命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>
-C:创建模式
    -n #: 使用#个块设备来创建此RAID;
    -l #:指明要创建的RAID的级别;
    -a {yes|no}:自动创建目标RAID设备的设备文件;
    -c CHUNK_SIZE: 指明块大小;
    -x #: 指明空闲盘的个数;
-D:显示raid的详细信息
    mdadm -D  /dev/md#
管理模式:
    -f:标记指定磁盘为损坏
    -a:添加磁盘
    -r:移除磁盘
停止md设备:
    mdadm -S /dev/md#

举例:创建一个可用空间为10G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录。

先来分析一下:RAID1为镜像磁盘阵列,最少需要2个磁盘,可用空间为10G,即磁盘最小大小为10G即可,我们这里就使用1块硬盘的不同分区来模拟各个磁盘,每个10G:

[[email protected] ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 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: 0xf9b59c0f
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1306    10490413+  83  Linux
/dev/sdb2            1307        2612    10490445   83  Linux
/dev/sdb3            2613        3918    10490445   83  Linux

使用以下命令创建RAID1系统,-C为创建模式,/dev/md0设备文件名,-n 2:使用2个块设备创建此RAID,-x 1:指定1个空闲盘的,-l:指定硬盘RAID等级,-a yes:自动创建RAID的设备文件,/dev/adb{1,2,3}:指定磁盘位置

[[email protected] ~]# mdadm -C /dev/md0 -n 2 -x 1 -l 1 -c 128 -a yes /dev/sdb{1,2,3}
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store ‘/boot‘ on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

使用 cat /proc/mdstat 查看RAID构建的进度和预期完成的时间:

unused devices: <none>
[[email protected] ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb3[2](S) sdb2[1] sdb1[0]
      10482176 blocks super 1.2 [2/2] [UU]
      [=============>.......]  resync = 68.6% (7200128/10482176) finish=0.2min speed=200001K/sec

unused devices: <none>
[[email protected] ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb3[2](S) sdb2[1] sdb1[0]
      10482176 blocks super 1.2 [2/2] [UU]

unused devices: <none>

查看RAID1的详情:

[[email protected] ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sun Jul 30 05:16:32 2017
     Raid Level : raid1
     Array Size : 10482176 (10.00 GiB 10.73 GB)
  Used Dev Size : 10482176 (10.00 GiB 10.73 GB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent
    Update Time : Sun Jul 30 05:17:25 2017
          State : clean
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1
           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : a46c7642:a46e274a:05923aeb:4c1ae0e9
         Events : 17
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2
       2       8       19        -      spare   /dev/sdb3

格式化RAID1为ext4文件系统:

[[email protected] ~]# mkfs.ext4 /dev/md0
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2620544 blocks
131027 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

将/dev/md0挂载到/backup目录下:

[[email protected] ~]# mount /dev/md0 /backup/
[[email protected] ~]#
[[email protected] ~]# df
Filesystem                   1K-blocks    Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root  51606140 1122252  47862448   3% /
tmpfs                           953276       0    953276   0% /dev/shm
/dev/sda1                       495844   33466    436778   8% /boot
/dev/mapper/VolGroup-lv_home  67708512  184084  64085020   1% /home
/dev/md0                      10317624  154100   9639416   2% /backup

可以使用 -f 将其中的某个磁盘模拟为坏的故障硬盘

[[email protected] backup]# mdadm /dev/md0 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0

再来看一下RAID1的详细信息,/dev/sdb3状态变为active

[[email protected] backup]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sun Jul 30 05:16:32 2017
     Raid Level : raid1
     Array Size : 10482176 (10.00 GiB 10.73 GB)
  Used Dev Size : 10482176 (10.00 GiB 10.73 GB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent
    Update Time : Sun Jul 30 05:37:02 2017
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 1
  Spare Devices : 0
           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : a46c7642:a46e274a:05923aeb:4c1ae0e9
         Events : 38
    Number   Major   Minor   RaidDevice State
       2       8       19        0      active sync   /dev/sdb3
       1       8       18        1      active sync   /dev/sdb2
       0       8       17        -      faulty   /dev/sdb1

使用 -r 选项能够移除坏的硬盘

[[email protected] backup]# mdadm /dev/md0 -r /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md0

好的,我们再来添加一块分区当做磁盘

[[email protected] backup]# fdisk /dev/sdb
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): n
Command action
   e   extended
   p   primary partition (1-4)
p
Selected partition 4
First cylinder (3919-15665, default 3919):
Using default value 3919
Last cylinder, +cylinders or +size{K,M,G} (3919-15665, default 15665): +10G
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)

咦,有告警!因为当前的磁盘已经有分区被挂载当根文件系统的目录上了,内核没有识别,我们来查看/proc/parttions,果真没有识别

[[email protected] backup]# cat /proc/partitions
major minor  #blocks  name
   8       16  125829120 sdb
   8       17   10490413 sdb1
   8       18   10490445 sdb2
   8       19   10490445 sdb3
   8        0  125829120 sda
   8        1     512000 sda1
   8        2  125316096 sda2
 253        0   52428800 dm-0
 253        1    4096000 dm-1
 253        2   68788224 dm-2
   9        0   10482176 md0

使用以下命令通知内核强制重读以下磁盘分区表

[[email protected] backup]# partx -a  /dev/sdb

添加/dev/sdb4到RAID1

[[email protected] backup]# mdadm /dev/md0 -a /dev/sdb4
mdadm: added /dev/sdb4

查看RAID1的详细信息,/dev/sdb4成功被加入

[[email protected] backup]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sun Jul 30 05:16:32 2017
     Raid Level : raid1
     Array Size : 10482176 (10.00 GiB 10.73 GB)
  Used Dev Size : 10482176 (10.00 GiB 10.73 GB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent
    Update Time : Sun Jul 30 05:51:52 2017
          State : clean
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1
           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : a46c7642:a46e274a:05923aeb:4c1ae0e9
         Events : 40
    Number   Major   Minor   RaidDevice State
       2       8       19        0      active sync   /dev/sdb3
       1       8       18        1      active sync   /dev/sdb2
       3       8       20        -      spare   /dev/sdb4

设置开机可以自动挂载只/backup目录下,修改配置文件/etc/fstab即可

#
# /etc/fstab
# Created by anaconda on Fri Jul 28 06:34:35 2017
#
# 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/VolGroup-lv_root /                       ext4    defaults        1 1
UUID=bc67ad74-46b3-4abc-b8a7-c4fb7cd6552a /boot                   ext4    defaults        1 2
/dev/mapper/VolGroup-lv_home /home                   ext4    defaults        1 2
/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/md0                /backup                 ext4    defaults        0 0

小知识点:

在查看RAID创建过程的进度时候,可加上watch命令动态查看创建RAID的进度

watch  [options]  ‘COMMAND‘

选项

-n# :指定刷新间隔,单位秒

watch -n1 ‘cat /proc/mdstat‘

时间: 2024-10-24 23:59:16

【linux相识相知】独立硬盘冗余阵列-RAID的相关文章

独立硬盘冗余阵列与HDFS

http://zh.wikipedia.org/wiki/RAID 独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称硬盘阵列.其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵.容量巨大的硬盘.根据选择的版本不同,RAID比单颗硬盘有以下一个或多个方面的好处:增强数据集成度,增强容错功能,增加处

【我的Linux,我做主!】独立磁盘冗余阵列RAID分级及实现方式

计算机和网络技术的高速发展对存储性能和数据可靠性的要求不断提高.在企业环境中,当公司服务器同时有3000+的用户同时访问时,并且用户同时进行不同的文件读写的操作时,单个硬盘的读写性能有限,容易出现性能瓶颈.常见的并行接口硬盘中如早期的IDE硬盘最高只到达133Mbps,SCSI小型计算机系统接口硬盘的最高传输速率是320Mbps,目前主流的串行接口硬盘SATA接口硬盘中SATA1传输速率是300Mbps,SATA2传输速率是600Mbps,目前SATA3接口最高可以到达6Gbps.为了解决性能问

raid独立磁盘冗余阵列

raid 0 并行i/o ,读写速度最快,不提供冗余.俗称条带模式. raid 1 将硬盘分为两组,互为镜像.一块硬盘出现故障,镜像硬盘立马工作.容错能力强,但是硬盘利用率只有50%. raid 3 让一块硬盘作为奇偶校验位,其余数据分别在其余硬盘里,速度没有raid快.当一块物理数据硬盘坏了,通过更换奇偶校验能找回数据.当校验硬盘出现故障,全部数据无法使用.硬盘利用率n-1 raid 5 每个硬盘里放入奇偶校验数据,允许单个硬盘出错. 下面是RAID设备创建和挂载例子 有四块硬盘/dev/sd

【Linux相识相知】计算机的组成、linux发行版和哲学思想、基础命令和目录结构

从今天开始,Frank将开始在博客上记录自己学习linux的点点滴滴,F初来乍到,还望各位大佬多多指教.本次博客的主要内容如下: 计算机基础:简要的描述了计算机的组成及其功能: linux初识:介绍了linux主流的发行版,说明了不同的发行版之间的区别和linux的哲学思想,列出了linux发行版的基础目录名称命名法则及功能规定: 基础命令:详细介绍一些基础的命令,并就如何在linux系统上获取命令的帮助做出了解释. 一.计算机的组成及其功能 计算机主要是由5个部分组成 控制器(Control)

【linux相识相知】压缩与打包

我们日常使用window的时候,经常会用到压缩与解压缩,如果要压缩一个文件,右击选择[添加到压缩文件],解压缩则右击选择[解压到当前文件夹],“点点点”就能完成.但是在一个没有装图形化界面的linux操作系统又不能使用“点点点”,那该怎么操作呢?本文就linux中如何使用压缩和打包工具做出解释. 为什么要压缩文件 压缩的目的是为了就是将文件通过压缩算法转变成一个体积更小格式的文件,减小了文件在硬盘上的占用空间,压缩文件的时候,特别的消耗CPU的时钟周期,因为CPU要进行大量的计算,所有压缩也是一

【linux相识相知】网络属性配置

当我们拥有一个崭新的计算机的时候,第一步恐怕都是迫不及待的下载各种软件,看视频,听音乐等,这里的关键的一点是要有网络.现在的个人计算机大部分都是windows操作系统的,接入网络网络很简单,插上网线也许就能上网了,最麻烦不过找到网络和共享中心手动配置一个ip地址.网关地址和dns服务器就能上网了,当然这都是得益于图形化界面.但是现在很多的服务器都是linux操作系统且没有图形化的界面,这时候我们就需要了解怎样正确的给linux主机配置网络属性了,本次博客就来说说以正确的方式打开linux操作系统

【linux相识相知】用户及权限管理

linux系统是多用户(Multi-users)和多任务(Multi-tasks)的,这样的目的是为了一台linux主机可以给很多用户提供服务同时运行多种服务,但是我们是怎么区分每个用户呢?作为一个管理员我对linux系统权限有哪些?作为一个普通的用户又可以对linux系统有哪些操作呢?这里就牵扯到了linux的用户类别和权限管理.本次博客就用户和权限管理作出详细的解释. 用户和组类型 在linux系统中,有着用户和组着两个概念,用户是被包含在组里面的. 用户可以分为以下2中类别: 管理员:也就

【Linux相识相知】rpm包管理

我们日常在使用Windows的时候,如果要安装某个软件,最简单的方法就是在程序包的官网直接下载软件包到本地,一般是以.exe或者.msi格式的文件,然后一直下一步下一步就能安装成功了,但是在使用linux的操作系统的时候也许不是这么的友好,即使现在有的linux发行版也可以通过简单的搜索点击安装来实现软件包的安装,但这并不一种很好的安装方法,因为你必须安装桌面环境,消耗和占用一定的内存资源,除非只是你日常使用.本次博客就如何使用rpm命令来实现centos上的软件包的安装与管理,rpm也许不是最

【Linux相识相知】文件查找(locate/find)

在用linux操作系统的时候,当我们忘记之前某个文件存储的位置,但是知道其文件名或者模糊的知道其文件名,我们都可以通过文件查找工具来查找,linux提供两种常用的查找工具,locate和find,在日常使用中后者比前者较前者功能更强大更具有实时性,下面我们就这两种工具来谈一谈她们的使用方法. Locate locate是基于实现构建好的索引库(索引库可以理解成文件路径的集合),索引库的位置放在/var/lib/mlocate/mlocate.db文件里面,系统一般一天会自动更新一次,也可以使用u