首页 > 系统相关 >RDID、YUM相关原理

RDID、YUM相关原理

时间:2024-06-24 12:44:34浏览次数:3  
标签:httpd name package sudo YUM yum 原理 RDID

  1. 总结RAID 0, 1, 5, 10, 01的工作原理
    RAID 0
    工作原理:数据条带化(Striping),将数据分块并分布到多个硬盘上。
    利用率:100%(无冗余)。
    冗余性:无冗余,任何一个硬盘故障都会导致数据丢失。
    性能:读写性能高。
    最少硬盘数:2个。
    RAID 1
    工作原理:数据镜像(Mirroring),将数据完全复制到两个或多个硬盘上。
    利用率:50%(一半的存储空间用于冗余)。
    冗余性:高冗余,任何一个硬盘故障不会导致数据丢失。
    性能:读性能高,写性能较低。
    最少硬盘数:2个。
    RAID 5
    工作原理:数据条带化和奇偶校验(Striping with Parity),将数据和奇偶校验信息分布到多个硬盘上。
    利用率:(n-1)/n(n为硬盘数)。
    冗余性:可以容忍一个硬盘故障。
    性能:读性能高,写性能较低(由于奇偶校验计算)。
    最少硬盘数:3个。
    RAID 10(1+0)
    工作原理:先镜像后条带化(Mirroring and Striping),将数据先镜像再条带化。
    利用率:50%(一半的存储空间用于冗余)。
    冗余性:高冗余,可以容忍每个镜像组中的一个硬盘故障。
    性能:读写性能高。
    最少硬盘数:4个。
    RAID 01(0+1)
    工作原理:先条带化后镜像(Striping and Mirroring),将数据先条带化再镜像。
    利用率:50%(一半的存储空间用于冗余)。
    冗余性:较低冗余,任何一个条带组中的一个硬盘故障都会导致数据丢失。
    性能:读写性能高。
    最少硬盘数:4个。

  2. 完成对LVM磁盘扩容及缩容示例
    LVM扩容
    创建物理卷:

    sudo pvcreate /dev/sdb1
    扩展卷组:

    sudo vgextend myvg /dev/sdb1
    扩展逻辑卷:

    sudo lvextend -l +100%FREE /dev/myvg/mylv
    扩展文件系统:

    sudo resize2fs /dev/myvg/mylv
    LVM缩容
    缩小文件系统:

    sudo resize2fs /dev/myvg/mylv 10G
    缩小逻辑卷:

    sudo lvreduce -L 10G /dev/myvg/mylv
    缩小卷组:

    sudo vgreduce myvg /dev/sdb1
    删除物理卷:

    sudo pvremove /dev/sdb1

  3. 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt总结程序包获取途径,以及rpm, yum, apt命令选项示例。
    常见程序包管理器
    RPM(Red Hat Package Manager):
    包含:二进制文件、配置文件、依赖信息、脚本等。
    获取文件列表:

    rpm -ql package_name
    YUM(Yellowdog Updater, Modified):
    包含:RPM包及其依赖关系。
    获取文件列表:

    yum list installed package_name
    DNF(Dandified YUM):
    包含:RPM包及其依赖关系。
    获取文件列表:

    dnf list installed package_name
    APT(Advanced Package Tool):
    包含:DEB包及其依赖关系。
    获取文件列表:

    dpkg -L package_name
    程序包获取途径
    YUM/DNF:
    配置文件:/etc/yum.repos.d/
    获取包:

    yum install package_name
    dnf install package_name
    APT:
    配置文件:/etc/apt/sources.list
    获取包:

    apt-get install package_name
    命令选项示例
    RPM:
    安装包:

    rpm -ivh package_name.rpm
    卸载包:

    rpm -e package_name
    查询包:

    rpm -qa | grep package_name
    YUM:
    安装包:

    yum install package_name
    卸载包:

    yum remove package_name
    更新包:

    yum update package_name
    APT:
    安装包:

    apt-get install package_name
    卸载包:

    apt-get remove package_name
    更新包:

    apt-get update

简要总结YUM/DNF工作原理。并搭建私有YUM仓库(base, epel源)给另一个虚拟机使用。
YUM/DNF工作原理
YUM(Yellowdog Updater, Modified)和DNF(Dandified YUM)是基于RPM包管理的工具,用于自动化地安装、更新、删除和管理软件包。它们的工作原理如下:
配置文件:YUM和DNF的配置文件位于 /etc/yum.conf 和 /etc/yum.repos.d/ 目录。
仓库:使用配置文件中定义的仓库来查找和下载软件包。仓库可以是本地目录,也可以是远程服务器。
依赖解析:自动解析软件包的依赖关系,并下载所有必要的依赖包。
缓存:将下载的软件包和元数据缓存到本地,以加快后续的操作。
插件:支持插件,可以扩展其功能。
搭建私有YUM仓库
安装Apache HTTP服务器:
y
sudo yum install httpd -y
启动并启用Apache服务:

sudo systemctl start httpd
sudo systemctl enable httpd
创建YUM仓库目录:

sudo mkdir -p /var/www/html/yum/base
sudo mkdir -p /var/www/html/yum/epel
下载Base源的软件包:

sudo reposync -p /var/www/html/yum/base --repoid=base --download-metadata
下载EPEL源的软件包:

sudo yum install epel-release -y
sudo reposync -p /var/www/html/yum/epel --repoid=epel --download-metadata
创建YUM仓库元数据:

sudo createrepo /var/www/html/yum/base
sudo createrepo /var/www/html/yum/epel
设置Apache目录权限:

sudo chown -R apache:apache /var/www/html/yum
sudo chmod -R 755 /var/www/html/yum
编辑Apache配置文件:

sudo vim /etc/httpd/conf/httpd.conf
添加以下内容:

<Directory "/var/www/html/yum">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted

重启Apache服务:

sudo systemctl restart httpd
在客户端虚拟机上创建YUM仓库配置文件:

sudo vim /etc/yum.repos.d/private.repo

添加以下内容:

[base]
name=Base Repository
baseurl=http://<server-ip>/yum/base
enabled=1
gpgcheck=0

[epel]
name=EPEL Repository
baseurl=http://<server-ip>/yum/epel
enabled=1
gpgcheck=0

替换为私有YUM仓库服务器的IP地址。
清理YUM缓存并更新仓库:

sudo yum clean all
sudo yum makecache
  1. 总结系统安装之后的常用初始化步骤。Rocky/Ubuntu
    Rocky Linux
    更新系统:

    sudo yum update -y
    设置主机名:

    sudo hostnamectl set-hostname myhostname
    配置防火墙:

    sudo systemctl start firewalld
    sudo systemctl enable firewalld
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --reload
    安装常用工具:

    sudo yum install -y vim wget curl git
    创建新用户并设置权限:

    sudo useradd myuser
    sudo passwd myuser
    sudo usermod -aG wheel myuser
    配置SSH:

    sudo nano /etc/ssh/sshd_config
    禁用root登录:PermitRootLogin no
    重启SSH服务:

    sudo systemctl restart sshd
    Ubuntu
    更新系统:

    sudo apt update
    sudo apt upgrade -y
    设置主机名:

    sudo hostnamectl set-hostname myhostname
    配置防火墙:

    sudo ufw enable
    sudo ufw allow http
    sudo ufw allow ssh
    安装常用工具:

    sudo apt install -y vim wget curl git
    创建新用户并设置权限:

    sudo adduser myuser
    sudo usermod -aG sudo myuser
    配置SSH:

    sudo nano /etc/ssh/sshd_config
    禁用root登录:PermitRootLogin no
    重启SSH服务:

    sudo systemctl restart ssh

  2. 解读一键安装httpd脚本,并自行实现一个一键安装脚本
    解读一键安装httpd脚本
    假设有一个简单的一键安装httpd的脚本:

!/bin/bash

安装httpd

sudo yum install -y httpd

启动httpd服务

sudo systemctl start httpd
sudo systemctl enable httpd

输出安装完成信息

echo "httpd安装完成"
自行实现一个一键安装脚本
要求:
基于位置变量传递版本号
基于独立函数进行初始化步骤,禁用防火墙,安装开发依赖包
基于独立函数进行下载包,解压包
基于独立函数进行编译,安装包
基于独立函数完成链接包
启动服务,并输出自定义的语句,安装xxx服务

!/bin/bash

检查是否以root用户运行

if [ "$EUID" -ne 0 ]; then
echo "请以root用户运行此脚本。"
exit 1
fi

检查是否传递了版本号

if [ -z "$1" ]; then
echo "请传递版本号作为参数。"
exit 1
fi

VERSION=$1

初始化步骤

initialize() {
echo "初始化步骤..."
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo yum groupinstall -y "Development Tools"
}

下载包并解压

download_and_extract() {
echo "下载并解压包..."
wget https://archive.apache.org/dist/httpd/httpd-$VERSION.tar.gz
tar -xzf httpd-$VERSION.tar.gz
}

编译并安装包

compile_and_install() {
echo "编译并安装包..."
cd httpd-$VERSION
./configure --prefix=/usr/local/apache2
make
sudo make install
}

完成链接包

link_package() {
echo "完成链接包..."
sudo ln -s /usr/local/apache2/bin/apachectl /usr/bin/apachectl
}

启动服务

start_service() {
echo "启动服务..."
sudo apachectl start
echo "安装httpd服务完成"
}

执行各个步骤

initialize
download_and_extract
compile_and_install
link_package
start_service

标签:httpd,name,package,sudo,YUM,yum,原理,RDID
From: https://www.cnblogs.com/linux-li/p/18264814

相关文章

  • Vue3 中的 v-bind 指令:你不知道的那些工作原理
    前言v-bind指令想必大家都不陌生,并且都知道他支持各种写法,比如<divv-bind:title="title">、<div:title="title">、<div:title>(vue3.4中引入的新的写法)。这三种写法的作用都是一样的,将title变量绑定到div标签的title属性上。本文将通过debug源码的方式带你搞清楚,v-bind指令是......
  • 文件系统(八):Linux JFFS2文件系统工作原理、优势与局限
    liwen012024.06.23前言在嵌入式Linux设备中,经常使用jffs2文件系统来作为参数区的文件系统格式。至于为什么要使用jffs2来作为参数区的文件系统,我猜大部分人都没有做过多的思考。jffs2在2021年被设计出来,距今已过二十多年,现在在嵌入式设备中它还在被大量使用、说明这套设计本身......
  • String字符串拼接原理
    分为三种情况字符串常量与字符串常量字符串常量之间的拼接操作在未加载到内存之前就已经完成了。在前端编译期间(即将.java源文件编译为.class字节码文件),会对字符串常量之间的拼接操作进行优化。对应的指令:可以看到对于s1和s2这两个局部变量,它们指向的是常量池中同一个对象,它......
  • 指令选择原理与实现方式
    概述编译器前端将源代码转换为等效形式的IR,IR经过优化器优化后传递到后端,由代码生成器将IR代码转换为汇编代码或目标代码在这个过程中,后端首先通过指令选择器目标机器支持的指令来实现IR指令至于指令的顺序,可由后续的指令调度器决定指令选择器指令选择器选择指令的基......
  • Vienna 整流器的基本原理及数学模型
    2.1Vienna整流器基本工作原理2.1.1主电路拓扑结构分析Vienna整流器系统的主电路包含用于升压的三相电感、三相桥臂和两个直流侧均压电容。通过有规律的对双向开关进行控制不仅能实现功率双向流动,还能使网侧电流时刻跟踪电网电压,使系统运行在高功率因数状态下。拓扑如图2......
  • 计算机组成原理复习总结(一)
    第一章计算机系统发展概述计算机发展历程计算机系统的层次结构计算机硬件的基本组成早期冯诺依曼机(以运算器为中心)现代计算机的结构(以存储器为中心)各个硬件的工作原理计算机系统的层次结构计算机的性能指标计算机发展历程电子管晶体管中小规模集成电路超大规模......
  • 【计算机组成原理】部分题目汇总
    计算机组成原理部分题目汇总一.简答题RISC和CICS简要说明,比较异同RISC(精简指令集)注重简单快速的指令执行,使用少量通用寄存器,固定长度指令,优化硬件性能,依赖软件(如编译器)来提升效率。CISC(复杂指令集)包含多样复杂的指令,能一条指令完成多步操作,采用变长指令,减少指令数但......
  • ChatGPT原理和训练【 ChatGPT是由OpenAI开发】
    本人详解作者:王文峰,参加过CSDN2020年度博客之星,《Java王大师王天师》公众号:JAVA开发王大师,专注于天道酬勤的Java开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯山峯转载说明:务必注明来源(注明:作者:王文峰哦)ChatGPT原理和......
  • Lazy TLB Mode 的工作原理
    LazyTLB(TranslationLookasideBuffer)mode是操作系统和处理器在管理虚拟内存时的一种优化技术,旨在提高处理器的性能。要理解LazyTLBmode,需要先了解一些基本概念:TLB(TranslationLookasideBuffer):TLB是一个缓存,用于存储虚拟地址到物理地址的映射。它加快了虚拟内存......
  • 带你彻底弄清CDMA码分多址的原理
    1.作用:主要用于无线多址接入,且具有很强抗干扰能力2.基本概念(1)码片:一个短间隔叫一个码片,1bit时间划分m个短间隔,则称1bit时间有m个码片(2)码片序列:1bit时间有m个码片,也就是每m个码片就有1bit的信息(每个站点都有自己的码片序列)(3)码片内容:码片中0写为-1,码片中1写为+13.站点发送......