云计算运维第4课

云计算时代的运维: 职业发展方向与岗位选择 对于很多人来说认为运维的工作是不是就是每天修电脑、修网线,外加背锅,其实都是对运维的误解。那些都是最基础的桌面运维,网络运维、IDC机房运维等等。 阅读详情

Linux软件管理源

一、引言:为什么要重视软件管理源

在 CentOS 系统中,软件管理源(Repository)是所有软件包安装、更新和卸载的基础设施。无论是通过 yum(CentOS 7 及更早版本)还是 dnf(CentOS 8 及后续衍生版本),正确配置和管理软件源都能带来以下好处:

  • 安全稳定:从可信的官方或社区仓库获取经过测试的软件包,降低安全风险。
  • 版本控制:通过不同仓库提供不同版本的软件,满足开发与生产环境需求。
  • 依赖解决:自动处理软件包之间的依赖关系,避免“依赖地狱”。
  • 高效维护:统一管理成千上万个软件包,一键更新系统。

本文将深入介绍 CentOS 的软件管理源体系,包含官方源、EPEL、以及仓库配置文件的编写方法,并提供大量可直接操作的命令示例。

二、YUM 与 DNF 简介

CentOS 的包管理工具经历了从 yum 到 dnf 的演进,但两者在软件源管理的工作方式上高度相似。

  • YUM (Yellowdog Updater Modified):CentOS 7 及更早版本使用的包管理器,通过 .repo 文件定义仓库地址。
  • DNF (Dandified YUM):CentOS 8 及后续版本(包括 CentOS Stream)的默认包管理器,语法与 yum 几乎完全兼容,但内部实现更现代、性能更好。

由于绝大多数命令可以互换,本文统一以 yum 为例说明,dnf 用户直接替换命令即可。所有软件源配置文件的语法和位置完全相同。

三、仓库配置文件基础

3.1 仓库文件存储位置

CentOS 的软件源配置文件以 .repo 为扩展名,存放在以下两个目录:

  • /etc/yum.repos.d/:用户自定义或第三方源存放目录,优先级最高。
  • /etc/yum.repos.d 下的备份目录:通常包含系统自带的 CentOS-Base.repo 等文件。

我们可以通过创建或修改 .repo 文件来添加新的软件源。

3.2 .repo 文件基本结构

一个典型的仓库配置段如下:

[repositoryid]
name=Repository Name
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
# 或者使用 mirrorlist
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

各参数含义:

  • [repositoryid]:仓库的唯一标识,不能重复。
  • name:仓库的描述性名称,可读性好即可。
  • baseurl:仓库的访问地址,支持 http://、https://、ftp:// 和本地路径 file://。
  • mirrorlist:镜像列表 URL,系统会自动选择最快的镜像。与 baseurl 二选一,一般建议使用 mirrorlist 以提高下载速度。
  • enabled:1 表示启用,0 表示禁用。
  • gpgcheck:1 表示启用 GPG 签名校验,强烈建议开启以保证安全。
  • gpgkey:GPG 公钥的 URL 或本地路径,用于验证软件包来源。
  • 常用变量:$releasever(发行版本号,如 7、8)、$basearch(基础架构,如 x86_64、aarch64)。

四、CentOS 官方软件源详解

CentOS 自带的官方源包含多个仓库,分别提供不同类别的软件包。这些仓库在安装系统时已自动启用,但了解其用途有助于高级管理。

4.1 主要官方仓库

  • base:发行版的核心软件包,是系统正常运行的基础,如内核、glibc、bash 等。
  • updates:针对 base 仓库中软件包的更新和重要补丁,建议始终启用。
  • extras:提供额外的不影响核心系统功能的软件包,例如 Docker、Nginx、某些开发库等。
  • centosplus:包含一些增强或替换基础仓库中软件包的包,比如更新版本的内核或工具链。该仓库默认禁用,因为其中的包可能破坏官方兼容性。
  • fasttrack(CentOS 7):包含一些与 RHEL 异步发布的 bug 修复包,通常由社区维护。

可以在 /etc/yum.repos.d/CentOS-Base.repo 中看到这些仓库的详细配置。建议新手不要随意修改该文件,而是通过额外的 .repo 文件添加新源。

4.2 验证官方源状态

使用以下命令查看当前启用的仓库列表及其包含的包数量:

yum repolist
# 或查看所有仓库(含禁用的)
yum repolist all

示例输出:

五、EPEL:企业级 Linux 额外软件包

5.1 什么是 EPEL

EPEL(Extra Packages for Enterprise Linux)是由 Fedora 社区维护的一个高质量附加软件源,为 CentOS/RHEL 提供了大量不在官方源中的常用软件,例如 Nginx、htop、certbot、Python 3.6+ 等。EPEL 严格遵守不替换基础系统软件包的原则,安全性高,兼容性好。

5.2 安装 EPEL

CentOS 7/8 均可以通过一个 RPM 包快速安装 EPEL 源:

# CentOS 7
yum install -y epel-release
CentOS 8(若使用 CentOS Stream 或 AlmaLinux/Rocky 也适用)
yum install -y epel-release
或者手动安装:
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

安装后会在 /etc/yum.repos.d/ 下生成 epel.repo 和 epel-testing.repo。其中 epel-testing 是测试仓库,包含更前沿但未充分测试的包,一般不建议在生产环境启用。

5.3 使用 EPEL

启用 EPEL 后,可以直接通过 yum 安装 EPEL 中的软件包:

yum install htop   # htop 来自 EPEL,官方 base 源中不存在

如果要临时禁用 EPEL 而使用其他源,可以:

yum --disablerepo=epel install package-name

注意:由于 EPEL 与官方源可能存在包名称冲突,实际使用中极少遇到。如果真的出现冲突,可通过 excludepkgs 参数在配置文件中排除特定包。

Linux进程管理

一、引言

进程管理是 Linux 系统管理的核心技能之一。无论是排查系统性能问题、控制服务运行状态,还是优化资源分配,都离不开对进程的深入理解。Linux 提供了丰富的命令行工具和系统接口,帮助管理员全面掌控系统中每一个运行中的进程。本文将详细介绍进程的基本概念、查看与筛选进程的方法、进程控制命令、后台任务管理、/proc 文件系统以及 systemd 服务管理等内容,并提供大量可直接操作的命令示例。

二、进程基础概念

2.1 什么是进程

进程(Process)是程序的一次执行实例。当用户在终端运行一个命令或启动一个应用时,系统会为其创建一个进程。每个进程拥有独立的地址空间、内存、文件描述符等资源,并由内核统一调度。

与进程相关的核心标识包括:

  • PID(Process ID):进程的唯一数字标识,在进程创建时由内核分配。
  • PPID(Parent Process ID):父进程的 PID。Linux 中除 init/systemd(PID 1)外,所有进程都由其他进程创建。
  • UID/GID:进程所属的用户 ID 和组 ID,决定了进程的权限。
  • TTY:进程关联的终端设备。

2.2 进程类型

  • 前台进程:直接与用户终端交互的进程,运行期间会占用终端。
  • 后台进程:在后台运行的进程,不占用终端输入,但可以向终端输出信息。
  • 守护进程(Daemon):在系统启动时自动运行、脱离终端控制的常驻后台进程,如 sshd、crond、httpd 等。

2.3 进程的生命周期

一个进程从创建到终止,大致经历以下阶段:

  • 创建(fork):父进程通过 fork() 系统调用创建子进程。
  • 就绪/运行:进程被调度器选中,在 CPU 上执行。
  • 等待/阻塞:进程等待 I/O、信号或资源,暂时停止运行。
  • 终止(exit):进程执行完毕或被强制终止。
  • 僵尸(Zombie):子进程已终止但父进程尚未回收其退出状态。少量僵尸进程无害,但大量堆积会耗尽 PID 资源。
  • 孤儿进程:父进程先于子进程终止,子进程会被 init/systemd 接管。

三、进程状态详解

在 Linux 中,每个进程在任何时刻都处于特定的状态。理解这些状态是排查问题的关键。

3.1 常见进程状态码

  • R(Running/Runnable):正在运行或在运行队列中等待 CPU 调度。
  • S(Interruptible Sleep):可中断睡眠,等待某个事件(如 I/O 操作)完成。绝大多数空闲进程处于此状态。
  • D(Uninterruptible Sleep):不可中断睡眠,通常是在等待磁盘 I/O。此状态的进程无法被 kill 信号中断,是高负载 I/O 问题的典型特征。
  • T(Stopped):进程被暂停(如收到 SIGSTOP 信号),可通过 SIGCONT 恢复。
  • Z(Zombie):僵尸进程,已终止但未被父进程回收。
  • X(Dead):进程即将被彻底销毁,极少见。

3.2 附加状态标识

  • s:会话领导者(session leader)。
  • +:前台进程组。
  • l:多线程进程。
  • <:高优先级进程。
  • N:低优先级进程。

四、查看进程的命令

4.1 ps 命令

ps(Process Status)是最基础的进程查看命令,支持多种选项组合。

常用用法示例

# 查看当前 shell 中运行的进程
ps
查看所有用户的进程(BSD 风格)
ps aux
查看所有进程(标准语法)
ps -ef
按树形结构显示进程关系
ps -ejH
或
ps axjf
根据 PID 查看特定进程
ps -p 1234 -f
查看某个用户的所有进程
ps -u root
自定义输出列
ps -eo pid,ppid,user,%cpu,%mem,cmd --sort=-%cpu | head -20
ps aux 输出列说明
  • USER:进程所属用户。
  • PID:进程 ID。
  • %CPU:CPU 使用率百分比。
  • %MEM:物理内存使用率百分比。
  • VSZ:虚拟内存大小(KB)。
  • RSS:常驻物理内存大小(KB)。
  • TTY:关联终端。
  • STAT:进程状态。
  • START:进程启动时间。
  • TIME:累计 CPU 时间。
  • COMMAND:命令行。

4.2 pstree 命令

pstree 以树形结构直观展示进程间的父子关系。

# 显示完整进程树
pstree
显示进程树并标注 PID
pstree -p
查看特定用户的进程树
pstree username
高亮当前进程
pstree -h

4.3 top 命令

top 是实时动态显示系统进程信息的交互式工具,类似于 Windows 的任务管理器。

# 启动 top
top
指定刷新间隔(秒)
top -d 2
显示特定用户的进程
top -u root
监控特定 PID
top -p 1234
top 交互快捷键
  • P:按 CPU 使用率排序。
  • M:按内存使用率排序。
  • T:按运行时间排序。
  • k:输入 PID 后发送信号终止进程。
  • r:修改进程优先级(renice)。
  • c:切换显示完整命令行。
  • 1:切换显示每个 CPU 核心的使用情况。
  • q:退出。

4.4 htop 命令

htop 是 top 的增强版,提供彩色界面、鼠标支持和更丰富的交互操作。需通过 EPEL 安装:

yum install -y htop
htop

htop 支持鼠标点击、垂直/水平滚动、进程树视图(F5)等特性,在日常运维中比 top 更受欢迎。

五、进程控制命令

5.1 信号机制

Linux 通过信号(Signal)与进程通信。进程收到信号后可以执行默认动作(终止、忽略、暂停等),也可以自定义处理函数(信号处理器)。

常用信号列表
信号编号信号名称默认动作说明
1SIGHUP终止终端挂断,常用于让守护进程重新加载配置
2SIGINT终止来自键盘的中断信号(Ctrl+C)
3SIGQUIT终止+core来自键盘的退出信号(Ctrl+\)
9SIGKILL终止强制终止,不可被捕获或忽略
15SIGTERM终止默认终止信号,可被捕获,允许进程优雅退出
18SIGCONT继续恢复被暂停的进程
19SIGSTOP暂停暂停进程,不可被捕获或忽略
20SIGTSTP暂停来自键盘的暂停信号(Ctrl+Z)

5.2 kill 命令

kill 用于向进程发送信号,尽管名称叫 kill,但它不仅可以终止进程。

# 优雅终止进程(发送 SIGTERM)
kill 1234
强制终止进程(发送 SIGKILL)
kill -9 1234
重新加载配置文件(常用语 nginx、sshd 等守护进程)
kill -HUP 1234
或
kill -1 1234
列出所有支持的信号
kill -l

5.3 killall 命令

killall 根据进程名称而非 PID 来发送信号,可以一次性终止多个同名进程。

# 终止所有名为 nginx 的进程
killall nginx
强制终止
killall -9 nginx
交互式确认(CentOS 7 部分版本需要 -i 参数)
killall -i nginx

5.4 pkill 命令

pkill 支持更灵活的模式匹配和筛选条件。

# 按名称模式终止进程
pkill nginx
按用户筛选
pkill -u root
按终端筛选
pkill -t pts/0
只向最新的一个进程发送信号
pkill -n nginx
强制终止所有属于某个用户的进程
pkill -9 -u username

六、进程优先级与资源控制

6.1 nice 与 renice

Linux 使用 nice 值来影响进程的调度优先级。nice 值范围从 -20(最高优先级)到 19(最低优先级),默认值为 0。普通用户只能将 nice 值调高(降低优先级),只有 root 可以调低 nice 值(提高优先级)。

# 以指定 nice 值启动进程
nice -n 10 my_program
修改已运行进程的 nice 值
renice -n 5 -p 1234
修改某个用户所有进程的 nice 值
renice -n 10 -u username

6.2 资源限制(ulimit)

ulimit 可以限制 shell 及其子进程的资源使用,包括最大文件打开数、最大内存、最大进程数等。

# 查看所有限制
ulimit -a
查看最大文件打开数
ulimit -n
设置最大文件打开数(临时生效)
ulimit -n 65535
设置最大进程数
ulimit -u 4096

对于持久化配置,需要修改 /etc/security/limits.conf 文件。

七、后台进程与作业控制

7.1 & 符号

在命令末尾加上 & 符号,可以将进程直接放入后台运行。

# 启动后台任务
sleep 300 &
后台运行并忽略 HUP 信号(退出终端后继续运行)
nohup my_program &

7.2 jobs、fg、bg 命令

# 查看当前终端的作业列表
jobs
# -l 显示 PID
jobs -l
将后台作业调回前台
fg %1
将暂停的作业放入后台继续运行
bg %1

7.3 Ctrl+Z 与前后台切换

  • 在进程运行时按 Ctrl+Z,进程会被暂停并放入后台(状态变为 T)。
  • 使用 bg %作业号 让暂停的进程在后台继续运行。
  • 使用 fg %作业号 将后台进程调回前台。

八、/proc 文件系统

/proc 是一个虚拟文件系统,不占用磁盘空间,由内核在内存中动态生成。它提供了进程和系统信息的接口,是排查问题和性能分析的重要数据来源。

8.1 进程相关目录

每个进程在 /proc 下都有一个以其 PID 命名的目录,包含该进程的详细信息。

# 查看进程的命令行参数
cat /proc/1234/cmdline
查看进程的环境变量
cat /proc/1234/environ | tr '\0' '\n'
查看进程状态信息
cat /proc/1234/status
查看进程的内存映射
cat /proc/1234/maps
查看进程打开的文件描述符
ls -l /proc/1234/fd/
查看进程的当前工作目录
ls -l /proc/1234/cwd
查看进程的可执行文件路径
ls -l /proc/1234/exe

8.2 常用系统级信息文件

# CPU 信息
cat /proc/cpuinfo
内存信息
cat /proc/meminfo
系统负载
cat /proc/loadavg
内核版本
cat /proc/version
系统运行时间和空闲时间
cat /proc/uptime

九、systemd 服务管理

在 CentOS 7 及更高版本中,systemd 取代了传统的 SysV init,成为系统和服务管理器。几乎所有的系统服务都以 systemd unit 的形式进行管理。

9.1 服务状态查看

# 查看所有已加载的 unit
systemctl list-units --type=service
查看特定服务的详细状态
systemctl status sshd
查看服务是否开机自启
systemctl is-enabled sshd
查看服务是否正在运行
systemctl is-active sshd

9.2 服务启动、停止与重启

# 启动服务
systemctl start nginx
停止服务
systemctl stop nginx
重启服务
systemctl restart nginx
重新加载配置(不中断服务)
systemctl reload nginx
重载 systemd 配置
systemctl daemon-reload

9.3 设置开机自启

# 启用开机自启
systemctl enable nginx
禁用开机自启
systemctl disable nginx
查看服务依赖关系
systemctl list-dependencies nginx

9.4 日志查看(journalctl)

# 查看特定服务的日志
journalctl -u nginx
实时跟踪服务日志
journalctl -u nginx -f
查看最近的日志(按时间筛选)
journalctl -u nginx --since "2026-07-06 22:00:00"
查看本次启动以来的日志
journalctl -b

十、常见问题排查

10.1 CPU 使用率过高

# 找出 CPU 占用最高的进程
ps aux --sort=-%cpu | head -10
使用 top 实时观察
top -o %CPU
查看进程的线程级 CPU 占用
top -H -p PID

10.2 内存泄漏排查

# 按内存占用排序
ps aux --sort=-%mem | head -10
查看进程详细内存信息
cat /proc/PID/status | grep -E "VmRSS|VmSize"
使用 smem 工具(需安装)
smem -r -s rss

10.3 僵尸进程处理

# 查找僵尸进程
ps aux | grep 'Z'
僵尸进程无法直接 kill,需找到其父进程
ps -o ppid= -p ZOMBIE_PID
终止父进程让僵尸进程被 init/systemd 接管回收
kill -HUP PARENT_PID

10.4 端口占用定位

# 查看端口被哪个进程占用
ss -tlnp | grep :80
# 或使用 lsof
lsof -i :80
根据 PID 查看详细信息
ps -p PID -f

10.5 进程卡死(D 状态)

处于 D 状态的进程通常是在等待磁盘 I/O。此时进程无法被 kill 信号中断。排查方向:

  • 检查磁盘 I/O 负载:使用 iostat -x 1 或 iotop。
  • 检查存储设备是否故障。
  • 检查 NFS 或远程文件系统是否响应异常。

十一、总结与最佳实践

进程管理是 Linux 运维的基石。掌握以下要点,将帮助你在日常工作中游刃有余:

  1. 善用 ps 和 top:它们是排查问题的第一站,熟练使用排序和筛选功能。
  2. 优先使用 SIGTERM:终止进程时先用 kill PID 给进程优雅退出的机会,仅必要时使用 kill -9。
  3. 关注僵尸进程:少量僵尸进程可以忽略,但若数量持续增长,应及时排查父进程。
  4. 合理设置资源限制:通过 ulimit 和 cgroup 限制进程资源使用,防止单进程耗尽系统资源。
  5. 活用 /proc 文件系统:很多监控工具(如 Prometheus node_exporter)的数据来源就是 /proc,直接查看 /proc 有助于深度排错。
  6. 掌握 systemd:现代 CentOS 系统全面采用 systemd,熟练掌握 systemctl 和 journalctl 是运维的基本功。
  7. 保持文档记录:对关键服务的进程管理操作做好记录,便于审计和故障回溯。

Linux磁盘管理

一、引言

磁盘管理是 Linux 系统运维中最基础也最关键的技能之一。无论是安装系统时的分区规划、运行中的存储扩容,还是故障后的数据恢复,都离不开对磁盘体系的深入理解。CentOS 提供了 fdisk、parted、LVM、mkfs、mount 等丰富的命令行工具,帮助管理员灵活高效地管理存储资源。本文将围绕磁盘分区、逻辑卷管理(LVM)、文件系统操作、挂载与卸载、磁盘配额以及常见问题排查等内容展开,并给出大量可直接操作的命令示例。

二、磁盘与分区基础

2.1 磁盘命名规则

在 Linux 中,磁盘设备以文件形式存在于 /dev/ 目录下,命名遵循一定规则:

  • IDE 硬盘:/dev/hda、/dev/hdb……
  • SATA/SCSI/SAS 硬盘:/dev/sda、/dev/sdb、/dev/sdc……
  • NVMe 固态硬盘:/dev/nvme0n1、/dev/nvme1n1……
  • 虚拟磁盘(KVM/VMware):/dev/vda、/dev/vdb……

分区以数字后缀表示,例如 /dev/sda1 表示第一块 SATA 磁盘的第一个分区。

2.2 MBR 与 GPT 分区表

  • MBR(Master Boot Record):传统分区表格式,最大支持 2TB 磁盘,最多 4 个主分区。可通过将其中一个主分区设为扩展分区来创建更多逻辑分区。
  • GPT(GUID Partition Table):现代分区表格式,支持超过 2TB 的大磁盘,最多 128 个分区(可调整),并自带 CRC 校验和备份分区表,容错性更好。CentOS 7+ 建议使用 GPT。

2.3 查看磁盘与分区信息

# 列出所有块设备
lsblk
查看磁盘分区表
fdisk -l
查看磁盘详细信息(含 UUID、文件系统类型)
blkid
查看已挂载的文件系统及使用情况
df -h
查看分区详情(需 root)
parted -l

三、磁盘分区工具

3.1 fdisk 命令

fdisk 是传统的 MBR 分区工具,也支持 GPT(CentOS 7+)。适合管理 2TB 以下的磁盘。

# 进入交互式分区界面(以 /dev/sdb 为例)
fdisk /dev/sdb
常用交互命令:
m  查看帮助
p  显示当前分区表
n  创建新分区
d  删除分区
t  修改分区类型
w  写入分区表并退出
q  不保存退出

创建分区的典型流程:

  1. 执行 fdisk /dev/sdb 进入交互模式。
  2. 输入 n 创建新分区,选择分区类型(主分区/扩展分区)。
  3. 设置起始扇区和结束扇区(或指定大小如 +10G)。
  4. 输入 w 写入分区表并退出。
  5. 执行 partprobe 或重启让内核重新读取分区表。

3.2 parted 命令

parted 是更现代的分区工具,对 GPT 和大于 2TB 的磁盘支持更好。

# 交互式使用
parted /dev/sdb
常用交互命令:
print        显示分区表
mklabel gpt  创建 GPT 分区表(或 msdos 创建 MBR)
mkpart primary 0% 50%  创建主分区(从 0% 到 50%)
mkpart primary 50% 100%  创建主分区(从 50% 到 100%)
rm 1         删除编号为 1 的分区
quit         退出
非交互式创建分区表
parted /dev/sdb mklabel gpt
非交互式创建分区
parted /dev/sdb mkpart primary xfs 0% 100%

3.3 分区对齐

对于 SSD 和 4K 扇区的高级格式化磁盘,分区对齐至关重要。未对齐的分区会导致额外的读写操作,严重降低性能。使用 parted 时指定 align-check optimal 1 可检查对齐情况。现代工具(parted、fdisk 新版)默认会按 1MB 边界对齐,一般无需额外干预。

四、逻辑卷管理(LVM)

4.1 LVM 概述

LVM(Logical Volume Manager)在物理磁盘和文件系统之间添加了一个抽象层,使得存储管理更加灵活。LVM 的核心概念:

  • PV(Physical Volume,物理卷):物理磁盘或分区,如 /dev/sdb1。
  • VG(Volume Group,卷组):由一个或多个 PV 组成的存储池。
  • LV(Logical Volume,逻辑卷):从 VG 中划分出的逻辑存储单元,类似于传统分区,但可以动态扩容和缩容。
  • PE(Physical Extent,物理扩展块):VG 中的最小分配单元,默认 4MB。

4.2 创建 LVM

# 1. 创建物理卷(将分区或整盘标记为 PV)
pvcreate /dev/sdb1
pvcreate /dev/sdc1
2. 创建卷组(将多个 PV 加入同一个 VG)
vgcreate vg_data /dev/sdb1 /dev/sdc1
3. 创建逻辑卷
-n 指定名称,-L 指定大小
lvcreate -n lv_mysql -L 50G vg_data
4. 格式化逻辑卷
mkfs.xfs /dev/vg_data/lv_mysql
5. 挂载使用
mkdir /data/mysql
mount /dev/vg_data/lv_mysql /data/mysql

4.3 查看 LVM 信息

# 查看物理卷
pvdisplay
pvs
查看卷组
vgdisplay
vgs
查看逻辑卷
lvdisplay
lvs

4.4 扩容逻辑卷

LVM 的一大优势是可以在线扩容(无需卸载文件系统)。

# 1. 如果 VG 空间不足,先添加新 PV 并扩展到 VG
pvcreate /dev/sdd1
vgextend vg_data /dev/sdd1
2. 扩容逻辑卷(增加 20G)
lvextend -L +20G /dev/vg_data/lv_mysql
3. 扩容文件系统(XFS)
xfs_growfs /data/mysql
如果是 ext4 文件系统
resize2fs /dev/vg_data/lv_mysql

4.5 缩容逻辑卷

注意:XFS 文件系统不支持缩容!ext4 支持,但需要先卸载。

# ext4 缩容步骤(以 ext4 为例)
umount /data/test
1. 先缩文件系统
e2fsck -f /dev/vg_data/lv_test
resize2fs /dev/vg_data/lv_test 10G
2. 再缩逻辑卷
lvreduce -L 10G /dev/vg_data/lv_test
mount /data/test

五、文件系统管理

5.1 常见文件系统对比

文件系统最大卷大小最大文件大小特点
ext41EB16TB成熟稳定,支持缩容,CentOS 6 默认
XFS8EB8EB高性能,支持在线扩容,不支持缩容,CentOS 7+ 默认
Btrfs16EB16EB支持快照、压缩、子卷,仍在积极开发

5.2 创建文件系统

# 格式化为 ext4
mkfs.ext4 /dev/sdb1
格式化为 XFS
mkfs.xfs /dev/sdb1
格式化为 Btrfs
mkfs.btrfs /dev/sdb1

5.3 文件系统检查与修复

# ext4 文件系统检查
e2fsck -f /dev/sdb1
XFS 文件系统检查(需先卸载)
xfs_repair /dev/sdb1
修复前建议先备份重要数据

六、挂载与卸载

6.1 mount 命令

# 基本挂载
mount /dev/sdb1 /mnt/data
指定文件系统类型挂载
mount -t ext4 /dev/sdb1 /mnt/data
以只读方式挂载
mount -o ro /dev/sdb1 /mnt/data
挂载并允许执行二进制文件
mount -o exec /dev/sdb1 /mnt/data
查看当前所有挂载
mount | column -t

6.2 umount 命令

# 卸载文件系统
umount /mnt/data
强制卸载(进程占用时)
umount -l /mnt/data
查看哪个进程占用
lsof /mnt/data
fuser -m /mnt/data

6.3 开机自动挂载(/etc/fstab)

/etc/fstab 文件定义了系统启动时自动挂载的文件系统。每行格式:

设备/UUID  挂载点  文件系统类型  挂载选项  dump  fsck顺序

示例:

# 使用 UUID 挂载(推荐,避免设备名变化)
UUID=a1b2c3d4-5678-90ab-cdef-1234567890ab  /data  xfs  defaults  0  0
使用设备名挂载
/dev/sdb1  /backup  ext4  defaults  0  0
挂载选项说明:
defaults = rw, suid, dev, exec, auto, nouser, async
noatime  不更新文件访问时间,可提升性能
# 编辑 /etc/fstab 后测试挂载(不重启验证)
mount -a

七、磁盘空间管理

7.1 查看磁盘使用情况

# 查看文件系统磁盘使用情况
df -h
查看 inode 使用情况(小文件过多时 inode 可能先耗尽)
df -i
查看目录/文件占用空间
du -sh /var/log/
du -h --max-depth=1 /home/
找出当前目录下最大的 10 个文件/目录
du -sh * | sort -rh | head -10

7.2 清理磁盘空间

# 查找大于 100MB 的文件
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null
清理 yum 缓存
yum clean all
清理旧内核(保留当前内核)
package-cleanup --oldkernels --count=2
清理 journal 日志(保留最近 3 天)
journalctl --vacuum-time=3d
清理 /tmp 目录中的旧文件
find /tmp -type f -atime +10 -delete

7.3 磁盘配额

磁盘配额用于限制用户或组对磁盘空间和 inode 的使用,防止单个用户耗尽磁盘。

# 1. 在 /etc/fstab 中添加配额选项
# /dev/sdb1  /data  xfs  defaults,usrquota,grpquota  0  0
# 或对 ext4 使用: defaults,usrquota,grpquota
2. 重新挂载
mount -o remount /data
3. 初始化配额数据库(ext4)
quotacheck -cug /data
4. 启用配额(ext4)
quotaon /data
5. 设置用户配额
edquota username
6. 查看配额使用情况
repquota /data

八、Swap 交换空间

8.1 Swap 的作用

Swap 是磁盘上的一块区域,当物理内存不足时,内核会将不活跃的内存页面换出到 Swap。适度的 Swap 有助于系统在内存紧张时保持稳定,但不能替代物理内存。

8.2 创建与启用 Swap

# 方法一:使用分区作为 Swap
mkswap /dev/sdb1
swapon /dev/sdb1
方法二:使用文件作为 Swap
dd if=/dev/zero of=/swapfile bs=1M count=4096
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
写入 /etc/fstab 永久生效
echo '/swapfile swap swap defaults 0 0' >> /etc/fstab

8.3 查看与调整 Swap

# 查看 Swap 使用情况
swapon --show
free -h
查看 Swap 使用程度(0-100,值越低越好)
cat /proc/sys/vm/swappiness
临时调整 swappiness(值越小越倾向使用物理内存)
sysctl vm.swappiness=10
永久调整
echo 'vm.swappiness=10' >> /etc/sysctl.conf

九、RAID 简介

RAID(Redundant Array of Independent Disks)通过组合多块磁盘来提升性能或提供冗余。Linux 支持软 RAID(通过 mdadm 实现)和硬 RAID(通过 RAID 控制器)。

9.1 常见 RAID 级别

  • RAID 0:条带化,将数据分散写入多块磁盘,读写性能高,但无冗余,任意一块磁盘损坏则数据全丢。最少 2 块盘。
  • RAID 1:镜像,数据同时写入两块磁盘,读性能提升,写性能略降,允许一块磁盘故障。最少 2 块盘,可用容量为总容量的 50%。
  • RAID 5:分布式奇偶校验,读写性能较好,允许一块磁盘故障,可用容量为 N-1 块盘。最少 3 块盘。
  • RAID 6:双奇偶校验,允许两块磁盘同时故障,可用容量为 N-2 块盘。最少 4 块盘。
  • RAID 10(1+0):先镜像再条带化,兼顾性能与冗余,最少 4 块盘,可用容量为总容量的 50%。

9.2 使用 mdadm 创建软 RAID

# 安装 mdadm
yum install -y mdadm
创建 RAID 1(使用两块磁盘)
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
查看 RAID 状态
cat /proc/mdstat
mdadm --detail /dev/md0
格式化并挂载
mkfs.xfs /dev/md0
mount /dev/md0 /data
保存 RAID 配置(确保重启后自动组装)
mdadm --detail --scan >> /etc/mdadm.conf

十、常见问题排查

10.1 磁盘空间未释放

删除大文件后 df 显示空间未释放,通常是因为该文件仍被某个进程占用。

# 查找已删除但仍被占用的文件
lsof | grep deleted
重启占用进程或使用以下命令清空
echo > /proc/PID/fd/FD_NUMBER

10.2 无法卸载磁盘

# 查看占用进程
fuser -m /mnt/data
lsof /mnt/data
强制 kill 占用进程后卸载
fuser -km /mnt/data
umount /mnt/data
或者使用懒卸载
umount -l /mnt/data

10.3 磁盘 I/O 性能排查

# 查看磁盘 I/O 统计
iostat -x 1
查看哪个进程占用 I/O
iotop
使用 dd 测试磁盘读写速度
dd if=/dev/zero of=/tmp/test bs=1M count=1024 conv=fdatasync
dd if=/tmp/test of=/dev/null bs=1M count=1024

10.4 fstab 错误导致无法启动

如果 /etc/fstab 配置错误导致系统无法正常启动:

  1. 启动时进入紧急模式(emergency mode),输入 root 密码。
  2. 以读写方式重新挂载根目录:mount -o remount,rw /
  3. 编辑 /etc/fstab 修正错误配置。
  4. 执行 mount -a 测试配置是否正确。
  5. 重启系统。

十一、总结与最佳实践

磁盘管理贯穿 Linux 运维的整个生命周期。牢记以下原则,将帮助你构建稳健的存储体系:

  1. 规划先行:部署系统前评估存储需求,合理规划分区方案。生产环境优先选用 LVM + XFS 组合。
  2. 使用 UUID:在 /etc/fstab 中使用 UUID 而非设备名,避免因磁盘识别顺序变化导致挂载失败。
  3. 监控空间:定期检查 df -h 和 df -i,设置告警阈值,防止空间或 inode 耗尽。
  4. 操作前备份:分区、缩容、格式化等危险操作前,务必备份关键数据并确认操作对象正确。
  5. 善用 LVM:为需要灵活扩容的场景(如数据库、日志存储)创建 LVM 逻辑卷,避免传统分区的扩容难题。
  6. 及时清理:定期清理旧日志、缓存文件和旧内核,释放磁盘空间。
  7. 测试 fstab:修改 /etc/fstab 后先执行 mount -a 验证,确认无误后再重启。
  8. 配置 Swap:即使内存充足也建议配置适量 Swap(一般 2-4GB),以应对突发内存压力。

综合项目--搭建论坛

本节以 CentOS 环境为例,完整演示从零搭建 Discuz 论坛的全过程。整体流程分为五个步骤:安装 MariaDB 数据库 → 配置 PHP 运行环境 → 部署 Discuz 论坛源码 → 配置 Nginx Web 服务器 → 浏览器访问验证。每一步都给出了可直接执行的命令和关键配置说明。

一、安装 MariaDB 数据库

Discuz 论坛需要 MySQL/MariaDB 作为后端数据库,首先安装并初始化 MariaDB:

# 安装 MariaDB 服务
yum install -y mariadb-server.x86_64
设置开机自启并立即启动
systemctl enable --now mariadb
运行安全初始化脚本,设置 root 密码等
mysql_secure_installation

二、配置 PHP 运行环境

2.1 安装 SCL 软件源

CentOS 基础源的软件版本偏老(如默认 GCC、Python、PHP、MySQL 版本很低)。SCL(Software Collections)可以在不替换系统自带软件的前提下,并行安装新版软件(如 GCC 11、Python 3.9、PHP 8.1、rh-mariadb 10.5 等),通过 scl enable 命令即可临时切换到高版本环境:

yum install -y centos-release-scl.noarch

为提高下载速度,建议将镜像源替换为阿里云:

2.2 安装 PHP 7.3 及 PHP-FPM

安装 PHP 7.3 完整运行环境,并搭配 MySQL 原生数据库驱动,使 PHP 7.3 程序具备连接 MariaDB/MySQL 的能力:

yum install rh-php73.x86_64 rh-php73-php-mysqlnd.x86_64

安装 PHP-FPM(FastCGI Process Manager),用于处理 Nginx 转发的 PHP 请求:

yum install -y rh-php73-php-fpm
systemctl enable --now rh-php73-php-fpm

三、部署 Discuz 论坛源码

将 Discuz 论坛源码压缩包解压到当前目录,释放出 upload 目录(包含论坛全部程序文件)及安装说明等:

unzip Discuz_X3.5_SC_UTF8_20260504.zip

Discuz 在安装和运行过程中需要对 config、data、uc_client、uc_server 这四个核心目录进行读写,递归开放全部权限:

chmod -R 777 config data uc_client uc_server

使用 Nginx 作为 Web 服务器,将全部 Discuz 论坛程序移动到 Nginx 的网页根目录:

四、配置 Nginx Web 服务器

使用 vim 打开 Nginx 主配置文件:

vim /usr/local/nginx/conf/nginx.conf

4.1 设置网站默认首页优先级

在 Nginx 配置中添加 index 指令,当浏览器只访问 IP/域名(不带具体文件名)时,Nginx 会按以下顺序查找默认首页文件:

  1. 优先查找 index.php
  2. 找不到则查找 index.html
  3. 最后查找 index.htm

这行配置的作用:

  1. 设置网站默认首页优先级:浏览器只访问 IP/域名(不带文件名)时,Nginx 按上述顺序查找文件 —— 优先匹配 index.php → 其次 index.html → 最后 index.htm。
  2. 适配 Discuz 论坛:论坛入口是 index.php,如果没有这行配置,访问网站根目录不会自动打开论坛首页,会报 403 错误或显示空白目录列表。
  3. 确保直接访问生效:源码根目录下的 index.php 就是 Discuz 入口,加上这行配置后,直接输入 IP 即可进入论坛安装页或主页。

4.2 配置 PHP 请求转发

添加以下 location 配置块,匹配所有以 .php 结尾的请求,并将其交给 PHP-FPM 程序解析。没有这段配置,Nginx 只会把 PHP 源码文件直接下载到浏览器,而不会执行页面。

逐行拆解说明:

  1. location ~ \.php$ —— 正则匹配:拦截所有 .php 后缀的 URL 请求(论坛所有 PHP 页面、安装页 install/index.php 都会命中此规则)。
  2. root html; —— 指定网站根目录为 html(对应 /usr/local/nginx/html,即 Discuz 源码所在目录),用于定位 PHP 文件的真实路径。
  3. fastcgi_pass 127.0.0.1:9000; —— 将 PHP 请求转发到本地 9000 端口的 PHP-FPM 服务(之前启动的 rh-php73-php-fpm 默认监听 9000),由 PHP 进程执行代码。
  4. fastcgi_index index.php; —— 指定 PHP 场景下的默认首页文件。
  5. #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; —— 这是原配置文件中的注释行,指向错误的 /scripts 目录,不能使用。
  6. include fastcgi.conf; —— 引入 Nginx 自带的 fastcgi.conf 文件,其中包含正确的 SCRIPT_FILENAME 参数,会自动拼接网站根目录和 PHP 文件路径,使 PHP-FPM 能正确定位 Discuz 的 PHP 源码。

五、浏览器访问验证

完成以上所有配置后,打开浏览器访问服务器 IP 地址,即可进入 Discuz 论坛的安装引导页面:

Linux云计算运维开发 Linux是一种类Unix的开源操作系统内核,最初由Linus Torvalds于1991年创建。Linux操作系统以其稳定性、安全性、灵活性和开源特性而著称,广泛应用于服务器、嵌入式系统、超级计算机和云计算等领域。云计算是一种通过互联网提供计算资源(如服务器、存储、数据库、网络等)和服务的技术。它允许用户按需访问和使用这些资源,而无需购买和维护物理硬件。Linux云计算运维开发是一项综合性很强的技术领域,涵盖了系统管理、网络配置、自动化运维、容器化、虚拟化、监控与日志管理等多个方面。 阅读详情

相关推荐

云计算学习基础,Linux云计算运维及开发

根据最重要的开源项目之一的负责人表示,这个以云计算为主导的现代IT模式是Linux和开源软件普及的温床。各大公司现在都需要技艺高超的精通Linux的人员。随着个人能力的提升,会越来越具有竞争优势。Linux云计算运维工程师的薪资基本都在万元起步,比传统Linux工程师的普遍薪要高一些。 咱们先来说说云计算吧!云计算,是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且...

qq_43311315的博客 8524

零基础怎么才能学好运维云计算?

零基础该怎么学云计算运维,运维工程师必备的技能以及系统的学习路线。

XiaoYing_0921的博客 4872

云计算运维思考

序言: 虽然离开H公司公有云运维岗位有一段时间了,但仍然在断断续续思考公有云该如何做才能运维好,最近顺手翻起《google SRE运维之道》,思考再三,对云计算的本质和运维做一个简单总结。 云计算的本质 云计算的本质是将计算机的基础能力(硬件能力,软件能力)以便捷的方式提供给需要的个人或组织使用,是一种能力和资源的使用方式。 云计算的这种对计算机能力的使用方式与电力的发展非常类似,最...

quakedinosaur的博客 1473

云计算时代运维的出路在哪?

戳蓝字“优快云云计算”关注我们哦!作者:王洪鹏做过开发,搞过运维,又在在云计算行业折腾了几年,不说自己技术怎样、怎样……,暂且说说笔者在当前公司做云计算这几年的些许感悟...

优快云业界要闻 1909

10大差异!Linux运维VS云计算运维深度解析

云计算的核心优势在于其出色的资源弹性和高度的可扩展性,这使得企业能够迅速响应市场需求的变化,并相应地调整资源配备。从技术实现的角度来看,Linux运维更注重于对操作系统底层的配置和优化,而云计算运维则侧重于资源的动态分配和管理。因此,企业在考虑采用云计算运维时,必须仔细评估云服务商的可靠性和服务质量,以确保业务的顺畅运行和数据的安全保障。然而,对于一些特定的问题和复杂的系统架构,传统的Linux运维可能更能提供针对性的解决方案。

m0_74885516的博客 1261

云计算运维项目实战

在云计算与运维领域,理论知识只是起点,真正的竞争力来源于对企业级项目的实践能力。若对文中提到的技术细节或项目实现感兴趣,或需要完整的项目文档与学习路线,欢迎。,手把手带你打通运维技术的"最后一公里",助你在简历中增添硬核实战经历。本文分享的课程内容源于企业真实需求,适合希望通过实战快速进阶的开发者。📌 在职运维人员,需提升技术广度与深度,掌握高并发、监控等高阶技能。📌 想从"会工具"进阶到"懂架构"的技术爱好者。

xy520chxu的博客 1259

云计算运维工程师必备的15个技能(零基础入行云计算运维必学内容)

但是,我国高校的云计算技术相关教育还没有完全成熟,除了有些开设了云计算相关的专业和方向的高校,很多高校的计算机相关大学生根本没有接触过云计算相关的技术或课程。以下是根据个人总结,粗略整理的一份云计算运维学习大纲,基本涵盖了云计算运维工程师需要掌握的全部技能,希望给准备学习云计算运维的朋友提供一点指引和帮助。能够对系统和应用进行性能优化,包括但不限于代码优化、数据库优化、缓存优化、网络优化等,以提升用户体验和系统性能。作为团队的一员,需要具备团队合作精神,积极参与团队活动和讨论,为团队的发展和目标贡献力量。

xamashangyun的博客 1万+

云计算运维基础1day

《云计算运维基础课程概述》 本课程系统介绍了云计算运维岗位的核心知识与实践技能。课程目标涵盖运维概念认知、专业术语理解、虚拟机及Linux系统安装等基础能力。内容分为八大模块:1)运维行业背景与岗位定义,解析我国云计算市场35.5%的高增速现状;2)运维技术体系,包括云计算架构、DevOps、AIOps等技术方向;3)运维"铁三角"协作关系;4)服务器组成与网络基础;5)操作系统分类及Linux优势;6)VMware虚拟机与CentOS系统安装实操;7)Linux文件系统结构;

m0_73299799的博客 855

云计算运维累不累_云计算运维工程师能做到老吗

很多人认为it行业是吃青春饭,到35岁以后基本上都失去职场竞争力,最近也有人在问云计算工程师岗位有年龄限制吗这个问题,我认为一个职业可以干多久完全取决于个人情况,如果你想在一个行业长久干下去,那么你就得深耕细耕,it行业属于一个技术迭代非常快行业,在工作的过程需要我们不断去学习新的技术来提升自己的职场竞争力,如果你想干一辈子的话,你得既要学习新知识又要应付工资,下面小编就给大家详细介绍一下这个问题...

weixin_42301321的博客 8447

云计算运维工程师工作技能

云计算作为一种基于互联网的计算方式和服务模式,已经成为当今企业和个人获取计算资源、存储数据和部署应用的主流选择。它为用户提供了弹性、灵活、可扩展的IT基础设施和服务,为其带来了诸多好处和便利。在云计算出现之前,企业需要自行购买昂贵的硬件设备、维护服务器和网络设备,投入大量资金和精力进行IT建设和运维。而随着云计算的兴起,用户可以通过云服务提供商(如AWS、Azure、阿里云等)租用虚拟化资源,按需付费,弹性扩展,避免了传统IT基础设施所面临的诸多挑战。

Moshengjie_的博客 1311

基于51单片机的简易计算器设计(原理图+仿真+源代码+参考论文)

本设计以51单片机为核心,矩阵键盘输入数字,通过1602显示屏显示计算结果,能够实现整数的加、减、乘、除四则运算,具备清除功能。

u012759563的博客 7697

云计算运维工程师前景发展

目前处于云年代,云计算运维工程师的工作前景还是十分广泛的。像是阿里云计算,滴滴,抖音等等互联网大厂目前都在使用云计算。云计算运维工程师的薪资水平也十分可观。运维工程师(Operations),首要担任维护并确保整个服务的高可用性,同时不断优化体系架构、提升布置功率、优化资源利用率提高整体的ROI,后续还能往devops 运维开发工程师、架构师来发展。企业的使用90%是跑在Linux渠道的,再高大上的云计算、大数据、物联网都需要好的运维做支撑。就连我们用的安卓手机,底层也是Linux架构。

Cheese_Y的博客 1610

ECharts 实现世界地图

效果图 源代码(仅供参考) <template> <div class="echarts"> <div class="className" id="id" style="width: 100%; height: 450px" ref="myEchart" ></div> </div> </template> <script lang="ts"> imp

EsquireY的博客 4874

云计算运维工程师是做什么的?需要经常加班吗?

很多人对于云计算运维工程师工作内容不是很清楚,不知道云计算运维工程师是做什么的?需要经常加班吗?这里我们将为您进行简单回答。 云计算运维工程师是做什么的? 云计算运维岗位涉及到云计算平台能否顺利、平稳地运行,因此运维工程师需要做的工作内容也相对比较丰富,既涉及到传统的网络运维知识,还涉及到虚拟化、管控、存储、安全等相关知识。另外,运维工程师还需要程序开发的工作,以便于完成大规模的自动化服务部署,这对于运维工程师也提出了较高的要求。 云计算运维需要经常加班吗? 运维是件苦差事,经常会需要加班的,加班更苦。要想

行云管家 1万+

Cadence 中Cutout、Design_Outline 和 Outline的区别

摘要: 在PCB设计中,Cutout、Design_Outline和Outline都与电路板外形相关但用途不同。Cutout用于定义切割区域(如孔、槽),直接影响制造;Design_Outline仅标记设计边界,作为参考不影响切割;Outline则是实际切割轮廓层,用于制造。三者区别在于:Cutout针对具体切割区域,Design_Outline是设计参考,Outline是最终切割依据。设计时需根据需求选择合适层:外形参考用Design_Outline/Outline,切割区域用Cutout。

卤煮小鱼的博客 1785

RealSense D455启动教程

RealSense D455启动教程 修改rs_camera.launch

每天进步一点点 2417

云计算运维累不累_谈一谈云计算下的运维

这一次好好谈下云计算时代的运维。对云计算的定义云计算其实跟 PC 机有一样的概念,有 CPU、硬盘、操作系统、应用软件。云计算的计算节点(虚拟机)就是 PC 中的 CPU,数据缓存服务就是 PC 的内存,存储节点就是 PC 的硬盘,提供数据服务,让数据不丢、高可用,PC 中的控制器就是云计算的控制系统。PC 机的硬件上面要有操作系统。操作系统很大一块是给开发人员提供系统的 API 接口,提供系统监...

weixin_42292348的博客 1510

染色体外环状DNA:肿瘤研究新方向

染色体外环状DNA(ecDNA)是癌症中活化原癌基因扩增的主要方式。区别于常染色体,这类生物大分子主要以环状的形式存在于细胞核当中,长度分布在103-106数量级,无中心粒。ecDNA序列中包含一个或者多个基因与调控元件,结构开放,转录活性强,相比于在棒状染色体结构基因,ecDNA的生物功能活性更强。癌症中,成环的基因区域拷贝数往往增高,而超过一半的高拷贝数事件是ecDNA驱动生成。...

blackjimmy的博客 765

云计算专业运维工程师所需要的知识技术

3、Linux系统服务网络基础(重点难点TCP/UDP)、sshd服务(scp/rsync)、文件共享服务(ftp/nfs/samba)、DNS域名服务、LAMP编译安装、rsyslog、Linux分区+LVM逻辑卷+(软硬RAID)。6、配置自动化配置自动化(Ansible/SaltStack)、监控(Zabbix/Promethus)、日志分析(ELK、KafKa)、CI/CD(Git、GitLab、Jenkins)。1、熟悉linux基本操作命令、网络基本配置、网络路由及防火墙服务配置。...

songaa1100的博客 1万+

FFmpeg硬件加速实战:VAAPI驱动配置全攻略(含NVIDIA/Intel避坑指南)

本文详细解析了在Linux环境下配置FFmpeg使用VAAPI接口实现硬件加速的完整流程。针对NVIDIA、Intel等主流显卡,提供了从驱动安装、环境变量设置到多显卡切换的实战指南,并重点解决了闭源驱动冲突、国产系统适配等常见问题,帮助用户有效提升视频处理性能。

weixin_29306011的博客 454

手把手教你学Simulink——高频隔离型双向DC-AC逆变器的建模与仿真

本文系统讲解高频隔离型双向DC-AC逆变器的Simulink建模与仿真,基于DAB+全桥逆变两级拓扑,详述DAB移相控制原理、双闭环控制策略及分步仿真搭建流程。重点涵盖电路建模、控制环设计、参数设置与常见问题调试,强调模块化分步验证与分层控制逻辑,实现安全、高效、灵活的双向能量流动仿真,适用于储能、微电网等场景的系统开发与验证。

MHD0815的博客 107

Linux 云计算运维——入门介绍

本文介绍了 Linux 云计算运维的基础知识,具体包括运维基础知识、项目部署、云监控等。

代码星辰的博客 2139

SAP-ABAP:SAP数据库视图(Database View)详解-创建

数据库视图是SAP中实现多表关联查询的基础工具,适合简单的跨表查询和权限控制场景。但其功能有限,对于复杂逻辑或高性能需求,建议结合CDS视图或ABAP程序开发。通过合理设计,数据库视图可显著提升开发效率和系统可维护性。它存储在数据库中,但本身不存储数据,仅通过查询动态生成结果。是一种基于物理数据库表的虚拟表,通过关联多个表(使用。

baidu_35680696的博客 1369

云计算运维未来发展趋势

云计算运维的“三重融合”技术与业务融合:运维决策直接影响用户体验和商业价值,例如通过CDN日志分析优化广告投放策略。开发与运维融合:GitOps模式推动开发人员直接参与云资源编排,运维团队转型为“可靠性架构师”。物理与虚拟融合:边缘计算场景下,运维需同时管理物理设备(如5G基站)和虚拟化资源,华为云IEF(Intelligent EdgeFabric)已实现10万级边缘节点统一管控。这一演进将要求运维人员具备云架构设计、数据科学、商业洞察。

2501_91003980的博客 2305

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

云计算运维与传统运维的探讨

云计算运维与传统运维的差异性 51CTO:阿里巴巴云计算运维是在什么样的背景下产生的? 柯旻:由于阿里巴巴业务的发展需要,数据量飞速膨胀。云计算、分布式计算等(包括我们自主开发的飞天系统),都是在这样的背景下产生的。 51CTO:云计算运维与传统运维的区别在哪里? 柯旻:其实最主要区别是量的膨胀。 传统的运维可能只有几十,或者上百的机器,这些机器上面有十个、二十个应用

快乐程序员的专栏 2356

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: 云计算运维第三课
下一篇: Linux系统管理
insertYam
博客等级 码龄3年 2粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值