本节所讲内容:
• xfs和ext性能对比
• 加密磁盘
了解:
xfs文件系统比ext文件系统的强的方面:
1.数据完整性
采用XFS文件系统,当意想不到的宕机发生后,由于文件系统开启了日志功能,所以磁盘上的文件不再会意外宕机而遭到破坏,不论目前文件系统上存储的文件与数据有多少,文件系统都可以根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
2.传输特性
xfs文件系统采用优化算法,日志记录对整体文件操作影响非常小。xfs查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。
3.可扩展性
xfs是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间。对特大文件及小尺寸文件的支持都表现出众,支持特大数量的目录。最大可支持的文件大小为9EB,最大文系统尺寸为18EB
(1EB=1024PB=1024*1024TB)
文件系统 | 最大文件系统(TB) | 最大文件(TB) |
xfs | 18874368 | 9437184 |
ext4 | 1048576 | 16 |
ext3 | 16 | 2 |
4.传输带宽
XFS 能以接近裸设备I/O的性能存储数据。在单个文件系统的测试中,其吞吐量最高可达7GB每秒,对单个文件的读写操作,其吞吐量可达4GB每秒。
LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准
首先对硬盘进行分区:
[root@xuegod61 ~]# fdisk /dev/sda
[root@xuegod61 ~]# partprobe /dev/sda
安装加密工具
[root@xuegod61 ~]# rpm -ivh /mnt/Packages/cryptsetup-1.6.7-1.el7.x86_64.rpm
设置加密分区
[root@xuegod61 ~]# cryptsetup luksFormat /dev/sda3
WARNING!
========
This will overwrite data on /dev/sda3 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
Password quality check failed:
The password is shorter than 8 characters
#密码要超过8个字节,而且要满足复杂性
映射
[root@xuegod61 ~]# cryptsetup luksOpen /dev/sda3 disk1
Enter passphrase for /dev/sda3:
[root@xuegod61 ~]# ll /dev/mapper/disk1
lrwxrwxrwx 1 root root 7 Feb 25 07:50 /dev/mapper/disk1 -> ../dm-2
格式化加密分区
[root@xuegod61 ~]# mkfs.xfs /dev/mapper/disk1
创建挂载点
[root@xuegod61 ~]# mkdir /sda3
挂载
[root@xuegod61 ~]# mount /dev/mapper/disk1 /sda3/
关闭加密分区
[root@xuegod61 ~]# umount /sda3/
[root@xuegod61 ~]# cryptsetup luksClose /dev/mapper/disk1
[root@xuegod61 ~]# mount /dev/sda3 /sda3/
mount: unknown filesystem type 'crypto_LUKS'
生成加密分区的密码文件,实现开机自动挂载加密分区
[root@xuegod61 ~]# vim /etc/crypttab
disk1 /dev/sda3 /root/key
#(如果这里写none的话,当系统启动时在读取分区时候,会一直停在那,等待输入密码)
生成密码文件,修改文件权限
[root@xuegod61 ~]# echo -n "xuegod123" > /root/key
[root@xuegod61 ~]# chmod 700 /root/key
添加密码文件到/dev/sda3 中
[root@xuegod61 ~]# cryptsetup luksAddKey /dev/sda3 /root/key
Enter any passphrase:
[root@xuegod61 ~]# vim /etc/fstab
/dev/mapper/disk1 /sda3 xfs defaults 0 0
[root@xuegod61 ~]# mount -a
mount: special device /dev/mapper/disk1 does not exist
reboot重启生效
本节所讲内容:
• 常见raid原理
• raid卡
• 配置raid
• 删除raid
实验需要添加5块硬盘
sda , b ,c,d,e,f
RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)可以提供较普通磁盘更高的速度、安全性,所以服务器在安装时都会选择创建RAID。RAID的创建有两种方式:软RAID(通过操作系统软件来实现)和硬RAID(使用硬件阵列卡)。
raid0:
1. RAID-0 :striping(条带模式),至少需要两块磁盘,做RAID分区的大小最好是相同的(可以充分发挥并发优势);数据分散存储于不同的磁盘上,在读写的时候可以实现并发,所以相对其读写性能最好;但是没有容错功能,任何一个磁盘的损坏将损坏全部数据;磁盘利用率为100%。
2. RAID-1 :mirroring(镜像卷),至少需要两块硬盘,raid大小等于两个raid分区中最小的容量(最好将分区大小分为一样),数据有冗余,在存储时同时写入两块硬盘,实现了数据备份;
磁盘利用率为50%,即2块100G的磁盘构成RAID1只能提供100G的可用空间。
RAID-5 :需要三块或以上硬盘,可以提供热备盘实现故障的恢复;只损坏一块,没有问题。但如果同时损坏两块磁盘,则数据将都会损坏。 空间利用率: (n-1)/n 2/3
1+1 =2
是用相对简单的异或逻辑运算(相同为0,相异为1)
A值 | B值 | Xor结果 |
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
RAID卡:Adaptec SATA RAID 2410SA ¥ 550
亚当普特克
RAID功能:RAID 0、1、5、10、JBOD
接口:Serial ATA
数据传输率:1.5 Gb/s
通道数:4
最多连接设备:4
LSI(美国巨积) MegaRAID SAS 9260-16i ¥ 4500
RAID功能:RAID级别:0、1、5 RAID跨接...
接口:Serial SATA/SAS
数据传输率:6Gb/s
插槽类型:PCI
其他性能:512MB DDRII 高速缓存
管理软raid工具mdadm
mdadm 参数:
命令常用参数如下:
-C或--creat | 建立一个新阵列 | -r | 移除设备 |
-A | 激活磁盘阵列 | -l 或--level= | 设定磁盘阵列的级别 |
-D或--detail | 打印阵列设备的详细信息 | -n或--raid-devices= | 指定阵列成员(分区/磁盘)的数量 |
-s或--scan | 扫描配置文件或/proc/mdstat得到阵列缺失信息 | -x或--spare-devicds= | 指定阵列中备用盘的数量 |
-f | 将设备状态定为故障 | -c或--chunk= | 设定阵列的块chunk大小 ,单位为KB |
-a或--add | 添加设备到阵列 | -G或--grow | 改变阵列大小或形态 |
-v | --verbose 显示详细信息 |
|
|
热备份盘(hot spare or hot standby driver):为了加强容错的功能以及使系统在磁盘故障的情况下能迅速的重建数据,以维持系统的性能,一般的磁盘阵列系统都可使用热备份功能。
Chunk (块): raid存储数据时每个数据段的大小。 4K,64K
若chunk过大,可能一块磁盘上的带区空间就可以满足大部分的I/O操作的数据的读写只局限与一块硬盘上,这便不能充分发挥Raid并发的优势;如果chunk设置过小,任何很小的I/O指令都可能引发大量的读写操作,不能良好的发挥并发性能,占用过多的控制器总线带宽,也影响了阵列的整体性能。所以,在创建带区时,我们应该根据实际应用的需要,合理的选择带区的大小
RAID0
例1、
1) 创建RAID0
2) 导出阵列配置文件
3) 格式化并挂载到指定目录
4) 修改/etc/fstab永久挂载
环境:添加一个sdb硬盘,分两个1G的主分区。sdb1和sdb2
[root@xuegod61 ~]# fdisk /dev/sdb
[root@xuegod61 ~]# ll /dev/sdb*
brw-rw---- 1 root disk 8, 16 Feb 25 09:10 /dev/sdb
brw-rw---- 1 root disk 8, 17 Feb 25 09:10 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Feb 25 09:10 /dev/sdb2
[root@xuegod61 ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb{1,2}
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
查看阵列信息
[root@xuegod61 ~]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=xuegod61.cn:0 UUID=c02009dd:fc28f287:fafca47a:49b2bd81
生成配置文件
[root@xuegod61 ~]# mdadm -Ds > /etc/mdadm.conf
[root@xuegod61 ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Feb 25 09:14:14 2016
Raid Level : raid0
Array Size : 2095104 (2046.34 MiB 2145.39 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Thu Feb 25 09:14:14 2016
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Name : xuegod61.cn:0 (local to host xuegod61.cn)
UUID : c02009dd:fc28f287:fafca47a:49b2bd81
Events : 0
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 18 1 active sync /dev/sdb2
对创建的RAID0创建分区
[root@xuegod61 ~]# fdisk /dev/md0
[root@xuegod61 ~]# ll /dev/md0*
brw-rw---- 1 root disk 9, 0 Feb 25 09:19 /dev/md0
brw-rw---- 1 root disk 259, 1 Feb 25 09:19 /dev/md0p1
格式化分区并挂载
[root@xuegod61 ~]# mkfs.xfs /dev/md0p1
[root@xuegod61 ~]# mkdir /raid0
[root@xuegod61 ~]# mount /dev/md0p1 /raid0/
永久挂载
[root@xuegod61 ~]# blkid | grep md0p1
/dev/md0p1: UUID="a25acfcc-9e33-474a-98b8-a0c07fee063e" TYPE="xfs"
[root@xuegod61 ~]# echo "UUID=a25acfcc-9e33-474a-98b8-a0c07fee063e /raid0 xfs defaults0 0" >> /etc/fstab