本博客主要是为了理解并记录实验中的每一个步骤的含义,以更好的理解该实验的目的与所作的内容。
一些建议:
- 由于安装在VMWare中的Fedora由版本原因没有办法安装VMTools,因此会导致难以将Windows中的Word文件内的命令直接复制到Fedora里面,所以建议安装SSH登录的远程客户端,这样就可以很方便的拷贝Word里面的命令到虚拟机中。
- 【工具】putty下载、安装、使用和常用设置教程-CSDN博客
目录
实验1:搭建GlusterFS
格式化和挂载分区
将分区进行格式化和挂载是为了为分布式文件系统(如GlusterFS)提供可用的存储空间,也就是所谓的"brick"。
格式化分区的目的是设置文件系统在分区上进行数据存储和管理。在这里,使用了XFS文件系统进行格式化。格式化过程会在分区上创建文件系统的数据结构,以便进行文件的读写操作。
挂载分区的目的是将已格式化的分区连接到文件系统的目录结构中,使得可以通过该目录访问分区中的文件。在这里,创建了一个名为/data/brick1的目录作为挂载点,然后将/dev/sdb分区挂载到该目录。
要确定您的分区位于哪里,您可以使用以下命令来查看系统中存在的分区和其对应的设备:
sudo fdisk -l
挂载
挂载是将文件系统连接到操作系统的目录结构的过程。在这种情况下,通过挂载GlusterFS卷,将使得卷中的文件和目录在指定的目录(在本例中是/mnt
)中可访问和可操作。
• /mnt
:这是挂载点,即将GlusterFS卷连接到操作系统中的目录。在这个例子中,将卷连接到/mnt
目录。
- 数据分布和冗余:卷将数据分布在多个存储节点上,通常使用数据分片(Data Sharding)的方式。这样可以实现数据的分散存储和并行处理,提高系统的性能和容量。卷还可以提供冗余机制,确保数据的可靠性和高可用性,即使某些节点发生故障,数据仍然可访问
测试存储
ls -lA /mnt | wc -l
用于统计 /mnt
目录下的文件和目录的数量,包括隐藏文件和目录
• ls -lA /mnt
:这是一个 ls
命令的组合,用于列出 /mnt
目录下的所有文件和目录的详细信息。选项 -l
表示以长格式输出,显示文件和目录的详细信息,而 -A
表示显示所有文件和目录,包括隐藏文件和目录(以.
开头的文件和目录被认为是隐藏的)。
• |
:这是管道符号,用于将命令的输出结果传递给下一个命令。
• wc -l
:这是一个 wc
命令,用于计算行数。选项 -l
表示只计算行数,而不考虑字数或字符数。
实验2:OwnCloud
SELinux(Security-Enhanced Linux)是一种安全增强的 Linux 安全模块,它为 Linux 操作系统提供了强大的访问控制机制。它在操作系统内核级别实施了强制访问控制(MAC)机制,用于强化系统的安全性。
安装OwnCloud
安装Samba和httpd
Samba和httpd是两个不同的**网络服务软件。**下面是它们的解释:
- Samba:Samba是一个开源的软件套件,它实现了SMB(Server Message Block)/CIFS(Common Internet File System)协议,用于在Linux和Unix系统上实现与Windows操作系统的文件和打印服务的互操作性。Samba允许Linux/Unix系统作为文件共享服务器与Windows客户端进行通信,使得Windows用户可以访问和共享Linux/Unix系统上的文件、目录和打印机。通过Samba,Linux/Unix系统可以在网络中充当Windows网络的一部分,提供文件共享、身份验证、权限控制等功能。
- httpd:httpd是指超文本传输协议(HTTP)服务器守护进程,也常用来指代Apache HTTP Server。Apache HTTP Server是最流行的开源Web服务器软件之一,它以高性能和稳定性而闻名。httpd(Apache HTTP Server)提供了在Web上托管和传输网页、文件和其他内容所需的基础设施。它支持多种操作系统(如Linux、Unix、Windows等)和多种编程语言(如PHP、Perl、Python等),并提供了灵活的配置选项、安全性设置和模块扩展,使开发者能够构建和管理功能强大的Web应用程序和网站。
总结起来,Samba是用于在Linux/Unix系统和Windows系统之间实现文件共享和打印服务的软件,而httpd(Apache HTTP Server)是一个广泛使用的Web服务器软件,用于托管和传输Web内容。
安装php7.4
Remi 是一个开源软件仓库,主要用于提供最新版本的 PHP 软件包和相关的扩展模块。通过安装 remi-release 软件包,可以将 Remi 软件源添加到系统的 YUM 源配置中,从而使系统能够获取 Remi 软件源中的软件包和更新。
PHP(全称为"PHP: Hypertext Preprocessor")是一种广泛使用的开源服务器端脚本语言。它是一种强大的编程语言,特别适用于Web开发。PHP是一种解释型语言,它的代码在服务器上执行,并生成动态的Web页面。
MariaDB
MariaDB 是一个开源的关系型数据库管理系统 (RDBMS),它是 MySQL 数据库的一个分支和替代品。MariaDB 的目标是提供一个兼容 MySQL 的数据库系统,同时扩展和改进 MySQL 的功能
设置开机自启动
httpd
是 Apache HTTP 服务器的主要服务进程,它负责接收和处理客户端的 HTTP 请求,并提供相应的网页内容。通过执行这个命令,你将启动 httpd
服务,使其开始监听并处理来自客户端的请求。
g)修改/var/www/html权限
/var/www/html
是一个常见的目录路径,通常用于存放 Web 服务器(如 Apache)的网站文件。在许多 Linux 发行版中,这是默认的 Web 根目录,用于存放网站的 HTML、CSS、JavaScript 文件以及其他静态资源。
修改 /var/www/html
的权限原因
- 网站文件的访问权限:通过将
/var/www/html
目录的所有者和所属组设置为apache
,可以确保 Web 服务器进程有足够的权限来访问和提供该目录下的文件。这样,服务器就可以读取和传输网站文件,以响应客户端的请求。
systemctl
是一个用于管理系统服务的命令行工具,它用于控制和监视系统运行的服务单元(units)。在基于 systemd 的 Linux 发行版中,如 CentOS 7、Ubuntu 16.04+ 等,systemctl
是一个常用的管理工具。
chown apache:apache /var/www/html/
这个命令 chown apache:apache /var/www/html/
是用于更改 /var/www/html/
目录的所有者和所属组。让我逐个解释它的含义:
chown
:chown
是一个用于修改文件或目录所有者的命令。apache:apache
: 这部分指定了新的所有者和所属组。在这个例子中,apache
是所有者,apache
是所属组。这意味着/var/www/html/
目录的所有者被设置为apache
用户,所属组也被设置为apache
组。/var/www/html/
: 这是指定要修改的目标文件或目录的路径。在这个例子中,/var/www/html/
是要更改所有者和所属组的目录路径。
通过执行这个命令,你将会将 /var/www/html/
目录的所有者和所属组设置为 apache:apache
,这通常用于 Web 服务器(如 Apache)的配置。这样一来,apache
用户和 apache
组将拥有该目录的访问权限,并能够执行相关的操作,如读取、写入、删除等。
请注意,执行这个命令需要具有足够的权限。确保在执行这个命令之前理解其作用,并根据需要进行适当的操作。
思考与扩展
1. 创建每种卷类型
几种卷类型
基础卷:
- 布式卷(distribute)、条带卷(stripe)、复制卷(replica)、纠错卷(Dispersed )
复合卷:
- 分布式条带卷(distribute stripe)、分布式复制卷(distribute replica)、条带复制卷(stripe replica)、分布式条带复制卷(distribute stripe)
操作
基础卷
以下创建挂载卷,均可通过以下命令进行查看、启用、停止、删除
#查看已创建挂载卷
gluster volume info
#启动挂载卷
gluster volume start gv0
#删除前,先停止挂载卷
gluster volume stop gv0
#删除挂载卷
gluster volume delete gv0
- 布式卷(distribute voulme)
将卷内的文件分别放在不同的服务器上,没有副本
分布式模式,既DHT,是GlusterFS的默认模式,在创建卷时,默认选项是创建分布式卷。在该模式下,并没有对文件进行分块处理,而是通过hash算法分布到所有brick server上,只是扩大了磁盘空间,类似window中的跨区卷
gluster volume create gv0 10.8.4.92:/var/lib/heketi/mounts/gv0 s10.8.4.93:/var/lib/heketi/mounts/gv0
distribute voulme特点
- 文件分布在不同的服务器,不具备冗余性。
- 更容易且廉价地扩展卷的大小。
- 单点故障会造成数据丢失,不具备容错性。
- 依赖底层的数据保护。
- 条带卷(stripe volume)
将文件切割后放在不同的节点上,没有副本
条带模式,既Striped,类似RADI 0,在该模式下,根据偏移量将文件分成N块(N个条带节点),轮询地存储在每个Brick Server节点。节点把每个数据块都作为普通文件存入本地文件系统,通过扩展属性记录总块数和每块的序号。在配置时指定条带数必须等于卷中Brick 所包含的存储服务器数,在存储大文件时,性能尤为突出,但是不具备冗余性。
stripe volume特点
数据被分割成更小块分布到块服务器群中的不同条带区。
分布减少了负载且更小的文件加速了存取的速度。
没有数据冗余,不具备冗余性。
单点故障会造成数据丢失,不具备容错性。
⚠️RAID0称为条带化存储,将数据分段存储在各个磁盘中,读写均可以并行处理,因此读写速率为单个磁盘的N倍,没有冗余功能,任何一个磁盘的损坏就会导致的数据不可用。
RAID 0的特点:
数据条带式分布
没有冗余,性能最佳(不存储镜像、校验信息)
不能应用于对数据安全性要求高的场合
gluster volume create gv0 stripe 2 10.8.4.92:/var/lib/heketi/mounts/gv0 s10.8.4.93:/var/lib/heketi/mounts/gv0
- 复制卷(replica volme)
将同一文件的副本进行放在卷内的每个服务器上
复制模式,既AFR,文件级别RAID 1,即同一文件保存一份或多份副本,每个节点上保存相同的内容和目录结构。复制模式因为要保存副本,所以磁盘利用率较低,如果多个节点上的存储空间不一致,那么将按照木桶效应取最低节点的容量作为该卷的总容量。复制卷具有冗余性,即使一个节点损坏,也不影响数据的正常使用。
replica volme特点
卷中所有的服务器均保存一个完整的副本。
卷的副本数量可由客户创建的时候决定。
磁盘利用率低。
具备冗余性
RADI1是镜像存储,没有数据校验,数据被同等的写入到2个或者多个磁盘中。
RAID 1的特点:
提供数据块冗余
写入速度相对慢, 但是读取快
gluster volume create gv0 replica 2 10.8.4.92:/var/lib/heketi/mounts/gv0 s10.8.4.93:/var/lib/heketi/mounts/gv0
- 纠错卷
Dispersed Volume是基于ErasureCodes(纠错码)的一种新类型的Volume(3.6版本正式发布该特性),类似于RAID5/6。通过配置Redundancy(冗余)级别提高可靠性,在保证较高的可靠性同时,可以提升物理存储空间的利用率。
详细请查看《GlusterFS Dispersed Volume(纠错卷)总结》
4.1. 创建命令
gluster volume create gv1 disperse 4 redundancy 1 10.8.4.92:/var/lib/heketi/mounts/gv1 10.8.4.93:/var/lib/heketi/mounts/gv1 10.8.4.131:/var/lib/heketi/mounts/gv1 10.8.4.132:/var/lib/heketi/mounts/gv1
二、复合卷
- 分布式条带卷(distribute stripe volume)
最少需要4台服务器才能创建。 brickserver数量是条带数的倍数,兼具distribute和stripe卷的特点,是DHT 与 Striped 的组合型。
1.1. 创建命令
gluster volume create gv0 stripe 2 10.8.4.92:/var/lib/heketi/mounts/gv0 s10.8.4.93:/var/lib/heketi/mounts/gv0 10.8.4.131:/var/lib/heketi/mounts/gv0 10.8.4.132:/var/lib/heketi/mounts/gv0
- 分布式复制卷(distribute replica volume)
最少需要4台服务器才能创建。brickserver数量是镜像数的倍数,兼具distribute和replica卷的特点,可以在2个或多个节点之间复制数据,是DHT 与 AFR 的组合型。
2.1. 创建命令
gluster volume create gv0 replica 2 10.8.4.92:/var/lib/heketi/mounts/gv0 s10.8.4.93:/var/lib/heketi/mounts/gv0 10.8.4.131:/var/lib/heketi/mounts/gv0 10.8.4.132:/var/lib/heketi/mounts/gv0
- 条带复制卷(stripe replica volume)
最少需要4台服务器才能创建。类似RAID 10,是 Striped 与 AFR 的组合型。
先组成RAID1,然后组成RAID0
RAID 10(又叫RAID 1+0)特点:
先按RAID 0分成两组,再分别对两组按RAID 1方式镜像
兼顾冗余(提供镜像存储)和性能(数据条带形分布)
3.1. 创建命令
gluster volume create gv0 stripe 2 replica 2 10.8.4.92:/var/lib/heketi/mounts/gv0 s10.8.4.93:/var/lib/heketi/mounts/gv0 10.8.4.131:/var/lib/heketi/mounts/gv0 10.8.4.132:/var/lib/heketi/mounts/gv0
- 分布式条带复制卷(distribute stripe volume)
至少需要8台 服务器才能创建。三种模式的混合。
4.1. 创建命令
gluster volume create gv0 stripe 2 replica 2 10.8.4.92:/var/lib/heketi/mounts/gv0 s10.8.4.93:/var/lib/heketi/mounts/gv0 10.8.4.131:/var/lib/heketi/mounts/gv0 10.8.4.132:/var/lib/heketi/mounts/gv0 exampleNode5:/var/lib/heketi/mounts/gv0 exampleNode6:/var/lib/heketi/mounts/gv0 exampleNode7:/var/lib/heketi/mounts/gv0 exampleNode8:/var/lib/heketi/mounts/gv0