什么是raid,如何在linux系统中实现

什么是raid,如何在linux系统中实现,第1张

应用场景

Raid大家都知道是冗余磁盘的意思(Redundant Arrays of Independent Disks,RAID),可以按业务系统的需要提供高可用性和冗余性,目前市面上比较常见的是通过服务器的raid阵列卡来实现此功能。

通过硬件阵列卡实现raid具有可靠性高,性能好等特点,但是对于一般的企业而言硬件阵列卡固然好,如果大规模应用的话动辄几千上万的费用也不是他们所能承受的,难道就没有既能保证数据安全,又能减少费用支持的IT方案吗?当然有,软raid就可以实现这一需求。

实现步骤

软raid比较依赖 *** 作系统,所以他的劣势也显而易见,需要占用系统资源(主要是CPU资源)。目前在Linux和windows下软raid都比较常见了,Linux是通过mdadm实现的,windows下则在win2003之后通过磁盘管理来实现。

实验环境

一台centos 7.2 VM,主机名分别为host1,host1上挂载两块50G的数据盘,我们的实验就在这两块数据盘上完成。

P.S:需要强调的是生产环境下两块组raid的硬盘必须是同品牌同型号同容量的,否则极容易出现软raid失效的情况。

1.确认 *** 作系统是否安装了mdadm软件

[root@host1 ~]# rpm -qa |grep mdadm

mdadm-3.3.2-7.el7.x86_64

2.对两块数据盘进行分区,并设置分区类型为raid

fdisk命令只能对容量在2T以下的硬盘进行分区,如果超过2T则需要使用parted工具了。Parted命令以后会介绍使用方法,本节不赘述了。

在fdisk下raid的分区类型代码是fd,在parted工具下首先需要使用mklabel将磁盘格式由MBR改成GPT,然后才能使用mkpart命令进行分区,分完区之后使用set设置分区flag为raid即可。

3.使用mdadm命令创建raid1

可以看到创建时有个Note的提示,是说软raid不能当启动设备,这就是软raid比较鸡肋的地方了。

mdadm -C /dev/md0 -ayes -l1 -n2 /dev/xvd[b,c]1

命令说明:

-C创建阵列

-a同意创建设备,如不加此参数时必须先使用mknod 命令来创建一个RAID设备,不过推荐使用-a yes参数一次性创建

-l阵列模式

-n阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目

/dev/md0阵列的设备名称,如果还有其他阵列组可以以此类推;

创建完成后可以使用cat /proc/mdstat查看阵列状态:

下图中第一次查看的时候提示resync完成了95.7%,第二次查询的时候两块盘才真正同步完。

也可以使用mdadm -D /dev/md0查看阵列组的状态

4.创建md0的配置文件

echo DEVICE /dev/sd{a,b}1 >> /etc/mdadm.conf

mdadm -Evs >> /etc/mdadm.conf

mdadm运行时会自动检查/etc/mdadm.conf 文件并尝试自动装配,因此第一次配置raid后可以将信息导入到/etc/mdadm.conf 中。

5.使用/dev/md0

在/dev/md0上创建文件,然后挂载进行使用。

mkfs.ext4 /dev/md0

1.  安装parted软件

yum install parted -y

2. 磁盘分区

# parted

GNU Parted 2.1

使用 /dev/xvda

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) select /dev/xvde         # 选择要分区的磁盘                                       

使用 /dev/xvde

(parted) mklabel gpt # 使用gpt

(parted) mkpart primary 0% 50% # 磁盘格式化为两个分区

(parted) mkpart primary 50% 100% # 磁盘格式化为两个分区

(parted) print   # 查看分区信息

Model: Xen Virtual Block Device (xvd)

Disk /dev/xvde: 4295GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Number  Start  End    Size    File system  Name    标志

1      1049kB  2147GB  2147GB              primary

2      2147GB  4295GB  2147GB              primary

(parted) quit      # 退出                                                      

信息: You may need to update /etc/fstab. 

3. 格式化系统

# mkfs.ext4 -T largefile /dev/xvde1

# mkfs.ext4 -T largefile /dev/xvde2

实例:

# mkfs.ext4 -T largefile /dev/xvde1

mke2fs 1.41.12 (17-May-2010)

文件系统标签=

*** 作系统:Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

2048000 inodes, 524287744 blocks

26214387 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=4294967296

16000 block groups

32768 blocks per group, 32768 fragments per group

128 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,

        102400000, 214990848, 512000000

正在写入inode表: 完成                           

Creating journal (32768 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

3.建立挂载点

# mkdir /eduvideo/mount1 -p

# mkdir /eduvideo/mount2 -p

4.编辑/etc/fstab文件

/dev/xvde1                /eduvideo/mount1        ext4    defaults        0 1

/dev/xvde2                /eduvideo/mount2        ext4    defaults        0 1

5.挂载磁盘

# mount -a

6.查看是否成功

# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/xvda2      91G  1.8G  84G  3% /

tmpfs            16G    0  16G  0% /dev/shm

/dev/xvda1      477M  70M  383M  16% /boot

/dev/xvde1      2.0T  71M  1.9T  1% /eduvideo/mount1

/dev/xvde2      2.0T  71M  1.9T  1% /eduvideo/mount2

主要看你的服务器用途,比如WEB,DATABASE,MAIL,FTP,VPN,GATEWAY,对于企业级服务器,最好把分区做细一些.

/根

SWAP交换

/BOOT启动及相关

/HOME用户目录

/VRA应用服务及相关

/TEP临时文件

以下是摘录的相关知识,希望对你有帮助:/boot分区,它包含了 *** 作系统的内核和在启动系统过程中所要用到的文件,建这个分区是有必要的,因为目前大多数的PC机要受到BIOS的限制, 况且如果有了一个单独的/boot启动分区,即使主要的根分区出现了问题,计算机依然能够启动。这个分区的大小约在60MB—120MB之间。

/usr分区,是 Linux系统存放软件的地方,如有可能应将最大空间分给它。

/home分区,是用户的home目录所在地,这个分区的大小取决于有多少用户。如果是多用户共同使用一台电脑的话,这个分区是完全有必要的,况且根用户也可以很好地控制普通用户使用计算机,如对用户或者用户组实行硬盘限量使用,限制普通用户访问哪些文件等。

/var/log分区,是系统日志记录分区,如果设立了这一单独的分区,这样即使系统的日志文件出现了问题,它们也不会影响到 *** 作系统的主分区。

/tmp分区,用来存放临时文件。这对于多用户系统或者网络服务器来说是有必要的。这样即使程序运行时生成大量的临时文件,或者用户对系统 进行了错误的 *** 作,文件系统的其它部分仍然是安全的。因为文件系统的这一部分仍然还承受着读写 *** 作,所以它通常会比其它的部分更快地发生问题。

/bin分区,存放标准系统实用程序。

上面介绍了几个常用的分区,但记住至少要有两个分区,一个SWAP分区,一个/分区。

基本上 /boot / /var 是一定要独立分区出来的 其他的看你还有没有别的规划

另外要预测一下你的服务器应用方向和存储增长点 ,比如是数据库还是htdocs目录

一般的 对于一个单硬盘的linux+apache+mysql来讲

/boot 100M

/ 6-8G

swap = 2G以上的时候建议是你内存容量1-1.5倍 swap死都增长不到10G那样的

然后其他全部划分给/var 以便动态规划空间

另外 /var/log /var/db /var/www 是三个主要的空间增长点 一个是日志 ,一个是数据库 最后就是网站文件 ,如果把握不好度 ,就干脆把/var划为一个分区,如果有清晰地规划,最好把 /var/log /var/db /var/www给独立开,具体的容量取决于规划 通常的 /var/log 占剩余空间的5% , /var/db 占55% ,/var/www占 40%

文件系统方面, 小文件数量占多的最好采取reiserfs 比如www,数据库上则XFS比较好,对巨型文件的读取和存储比较稳定安全 至于基本系统 稳定就行


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7137314.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存