raid多级别讲解
=======
raid技术
raid 全称为 Redundant Arrays of Independent Drives, 即磁盘冗余阵列。
raid技术是将多块独立的磁盘,组成了一个磁盘组
raid 技术意图在于把多个独立的硬盘设备,组成一个容量更大,安全性更高的磁盘陈列组,将数据切位多个区段之后分别存储在不同的物理硬盘上。并且利用分散读写技术提升磁盘整体性能。数据同步在了不同的多个磁盘上。数据也得到了冗余备份的作用。
raid特性
raid特性,是能够保证数据安全性的,但是也增加了磁盘的成本,raid除了能够保障数据丢失造成的严重损失,提升硬盘读写效率,因此广泛的被企业使用。
饮水机和磁盘的关系
-standalone 独立模式
-一台饮水机,一桶水,提供服务
-一块硬盘单独的工作,读写数据
-hot swap 热备份模式
-一桶水可能喝完,水桶可能被污染,损坏,旁边放一个水桶,随时等待接替工作
-为了防止单独的一块硬盘损坏,随时准备好另一块硬盘准备接替工作,要保证两块磁盘数据一致,可以使用sync 同步技术。
-cluster 集群模式
- 一堆饮水机提供服务,就算单独的坏了一台饮水机,无所谓,还有其他机器等待工作
- 一堆硬盘共同提供服务,提高读写效率
raid技术级别
raid技术分为多个级别,不同的级别,由于技术角度的考虑,还有公司运营成本的考虑。不同的企业选择不同的版本的 raid 技术。
raid 0
raid 1
raid 5
raid 10
1.raid 0 学习
raid 0 特点是数据依次写入到物理硬盘,在理想的状态下,写入速度是翻倍
raid 0 特点是,但凡任意损坏了一块硬盘,数据都将被破坏。数据写入到2块硬盘中,没有备份的功能。
raid 0 适用于追求极致性能的场景,且不关注于数据安全性的场景。比如游戏
raid 0 读写效率更高,但是数据没有安全性保障。
由于raid 0的特性,数据依次写入到多块硬盘中,数据是分开存储的,因此损坏了任意一块硬盘,数据都将被破坏,对于企业非常重要的数据来说,肯定是不允许使用的。
想要快速存储数据,不怕数据丢失,可以选择 raid 0 方案
2. raid 1 场景
raid 1 将两块以上的硬盘绑定关系,数据写入的时候,同时写入多块硬盘,因此即使硬盘故障损坏,也不惧怕,因为我有备份。
raid 1 的特点,极大的降低了磁盘的利用率。假如你有2块硬盘一共4T大容量,你做了raid 1, 你可使用的容量只有2T了。利用率只有50%。
如果是三块硬盘组成的 raid 1, 利用率更低了只有33%
3. raid 3场景
计算机的异域运算概念:数字相同则为0,数字不同的则为1
- + * / ^ 异域运算
root@ubuntu:~# python3 --version
Python 3.10.12
root@ubuntu:~# python3
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 8^8
0
>>>
>>>
>>> 8^8
0
>>> 8^9
1
磁盘的异域运算
AxorBxorC A异域B异域C
多个值的异域计算概念是:
1的个数是奇数,结果则为1
1的个数是偶数,结果则为0
>>> 0^1^1
0
>>> 1^1^1
1
>>> 0^0^1
1
>>> 1^0^1
0
>>> 1^1^1^1^1
1
>>> 1^1^1^1^1^1
0
异或的作用:只要知道异或的结果,任何一个值都能够被反推出来,且计算机的数据只有 0 和 1
raid 3 必须需要3块以上的硬盘。
磁盘1: 0101
磁盘2: 1011
异或结果: 1110
如果突然磁盘1挂了
目前知道磁盘2的数据是:1011
异或值又是:1110
反推,磁盘1的数据是:0101
raid 3 的特点是,存储着异或值的磁盘不得损坏
=========
raid 5: 更强大的 raid 3系统
校验码均匀的放在每一块硬盘上,因此。即使挂了任意的一块硬盘,都能够反推出原本的数据,但是不能同时挂掉两块硬盘。
=======
raid 10
企业目前再使用的是 raid 10版本
raid10 就是 raid 1 + raid 0 的意思
即吸收了 raid 0 的特点,提升了数据的写入速度,提高效率
又吸收了 raid 1 的安全性,因此至少需要 4 块硬盘完成
1.通过 raid 1 技术,实现了磁盘两两备份,数据安全性较高
2.针对两个 raid 1 的部署,又部署了 raid 0,提高了磁盘的读写效率。
3. 只要不是同一个硬盘组,全部损害,那么即使你挂掉一块硬盘也无所谓。
安装python环境
在Ubuntu系统中安装Python有多种方法,以下是其中两种常用的方法:
方法一:使用apt-get命令安装
-
打开终端。
-
运行以下命令更新软件包列表:
sudo apt-get update
-
运行以下命令安装Python:
sudo apt-get install python3
这将安装Python 3版本。如果你需要安装Python 2版本,可以运行以下命令:
sudo apt-get install python
方法二:使用源代码编译安装
-
首先,确保你已经安装了编译Python所需的依赖项。运行以下命令安装这些依赖项:
sudo apt-get update sudo apt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
-
下载Python源代码。你可以从Python官方网站下载最新的稳定版本,或者使用以下命令下载最新的Python 3版本:
wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
-
解压下载的源代码包:
tar -xf Python-3.9.5.tgz
-
进入解压后的目录:
cd Python-3.9.5
-
配置编译选项并进行编译:
./configure --enable-optimizations make -j$(nproc)
-
安装Python:
sudo make altinstall
注意使用
altinstall
而不是
install
,以避免覆盖系统默认的Python版本。
安装完成后,你可以在终端中运行python3
命令来启动Python解释器。
root@ubuntu:~# python3 --version
Python 3.10.12
root@ubuntu:~# python3
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> 8^8 # 异域运算 数字相同结果则为0
0
>>>
>>> 8^9 # 异域运算 数字不同结果则为1
1
>>> 9^9
0