Linux系统部署全指南:从内核到生产环境
1. Linux系统概述:从内核到发行版
Linux本质上是一个开源的类Unix操作系统内核,由Linus Torvalds在1991年首次发布。但今天我们所说的"Linux系统"通常指的是包含内核和各种系统工具的完整发行版(Distribution)。这种模块化设计让Linux既能运行在嵌入式设备上,也能支撑大型服务器集群。
内核版本遵循主版本.次版本.修订号的命名规则,其中次版本为奇数表示开发版,偶数表示稳定版。例如5.4.0是长期支持(LTS)版本,而5.5.0则是短期开发版本。主流发行版会选择某个LTS内核作为基础,再集成用户态工具形成自己的版本体系。
提示:选择发行版时,商业支持(如RHEL)和社区支持(如Debian)是两条完全不同的技术路线,企业环境建议优先考虑支持周期5年以上的LTS版本。
发行版主要分为三大体系:
- Red Hat系:包括RHEL、CentOS、Fedora等,采用RPM包管理
- Debian系:包括Ubuntu、Mint等,使用deb包格式
- 独立发行版:如Arch Linux、Gentoo等,各有特色包管理
2. 典型部署场景与技术选型
2.1 物理服务器部署
传统裸机部署需要处理硬件兼容性问题,建议按以下流程操作:
硬件检查:
- 使用
lspci查看PCI设备 lsblk检查存储设备识别dmesg | grep -i error排查驱动问题
- 使用
RAID配置:
- 硬件RAID通过BIOS配置
- 软件RAID用
mdadm工具:mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
分区方案:
- 推荐GPT分区表
- 关键分区建议:
/boot1GB (EXT4)swap内存1.5倍(<=64GB时)/剩余空间(XFS)
2.2 虚拟机部署
主流虚拟化平台部署要点:
| 平台 | 驱动要求 | 磁盘格式 | 网络模式推荐 |
|---|---|---|---|
| VMware | open-vm-tools | VMDK | VMXNET3 |
| KVM | virtio驱动 | QCOW2 | virtio-net |
| Hyper-V | LIS(Linux IC) | VHDX | Synthetic |
关键优化参数:
# KVM虚拟机内核参数优化 echo "vm.swappiness=10" >> /etc/sysctl.conf echo "net.ipv4.tcp_tw_reuse=1" >> /etc/sysctl.conf2.3 云环境部署
各大云平台提供优化过的Linux镜像,但需要注意:
云初始化工具:
- AWS:cloud-init
- Azure:waagent
- GCP:google-compute-engine
存储配置差异:
- 云盘通常需要手动扩展文件系统:
growpart /dev/vda 1 xfs_growfs /
- 云盘通常需要手动扩展文件系统:
安全组策略:
- 最小化开放端口
- 启用SSH密钥登录
- 禁用root远程登录
3. 系统安装实战详解
3.1 安装介质准备
推荐使用Ventoy制作多系统启动盘:
- 下载最新Ventoy镜像
- 写入U盘:
dd if=ventoy-1.0.00-linux.tar.gz of=/dev/sdc bs=4M status=progress - 将ISO文件拷贝到U盘即可
3.2 自动化安装方案
3.2.1 Kickstart(RHEL系)
示例ks.cfg关键配置:
lang en_US keyboard us timezone Asia/Shanghai rootpw --iscrypted $6$salt$hash autopart --type=lvm %packages @^minimal kernel-tools %end3.2.2 Preseed(Debian系)
关键配置片段:
d-i partman-auto/method string lvm d-i partman-lvm/device_remove_lvm boolean true d-i partman-auto/choose_recipe select atomic d-i passwd/root-login boolean false3.3 首次启动配置
完成安装后必须执行的初始化操作:
系统更新:
# RHEL系 dnf update -y && dnf upgrade -y # Debian系 apt update && apt full-upgrade -y安全加固:
- 配置防火墙:
firewall-cmd --permanent --add-service=ssh firewall-cmd --reload - 安装fail2ban:
dnf install fail2ban -y systemctl enable --now fail2ban
- 配置防火墙:
性能调优:
- 禁用不必要的服务:
systemctl disable avahi-daemon - 调整IO调度器:
echo 'ACTION=="add|change", KERNEL=="sd*", ATTR{queue/scheduler}="deadline"' > /etc/udev/rules.d/60-scheduler.rules
- 禁用不必要的服务:
4. 部署后问题排查指南
4.1 启动故障处理
常见启动问题排查流程:
GRUB救援模式:
- 修复引导:
grub2-install /dev/sda grub2-mkconfig -o /boot/grub2/grub.cfg
- 修复引导:
急救模式挂载:
mount -o remount,rw /sysroot chroot /sysroot内核参数调整:
- 在GRUB界面按e编辑,追加:
systemd.unit=rescue.target
- 在GRUB界面按e编辑,追加:
4.2 网络连接问题
分层排查法:
| 层级 | 检查命令 | 修复方法 |
|---|---|---|
| 物理层 | ip link show | 启用网卡:ip link set eth0 up |
| 网络层 | ping 8.8.8.8 | 检查路由:ip route add default via 192.168.1.1 |
| 传输层 | nc -zv 192.168.1.100 22 | 开放防火墙端口 |
| 应用层 | curl -I http://example.com | 检查DNS配置 |
4.3 存储性能优化
针对不同负载的IO优化方案:
数据库场景:
# 禁用文件系统访问时间 mount -o noatime,nodiratime /dev/mapper/vg_data-lv_data /var/lib/mysql # 调整预读值 blockdev --setra 8192 /dev/sdbWeb服务场景:
# 优化inode缓存 echo "vm.vfs_cache_pressure=50" >> /etc/sysctl.conf # 调整脏页比例 echo "vm.dirty_ratio=10" >> /etc/sysctl.conf5. 生产环境部署建议
5.1 高可用架构设计
典型双机热备方案实现:
Pacemaker+Corosync配置:
pcs cluster setup --name mycluster node1 node2 pcs cluster start --all pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30sDRBD块设备复制:
resource r0 { protocol C; on node1 { device /dev/drbd0; disk /dev/sdb1; address 192.168.1.101:7788; } on node2 { device /dev/drbd0; disk /dev/sdb1; address 192.168.1.102:7788; } }
5.2 自动化运维集成
推荐工具链组合:
配置管理:Ansible(无agent模式)
- hosts: webservers tasks: - name: Ensure nginx is installed yum: name: nginx state: present监控告警:Prometheus + Grafana
# prometheus.yml 片段 scrape_configs: - job_name: 'node' static_configs: - targets: ['node1:9100', 'node2:9100']日志分析:ELK Stack
# Filebeat配置示例 filebeat.inputs: - type: log paths: - /var/log/nginx/access.log
5.3 合规性检查
必须执行的基线检查项目:
CIS基准检测:
git clone https://github.com/dev-sec/linux-baseline cd linux-baseline inspec exec . --target ssh://user@server漏洞扫描:
yum install openscap-scanner -y oscap xccdf eval --profile stig-rhel7-disa --results scan.xml /usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml密码策略强化:
# 修改/etc/pam.d/system-auth password requisite pam_pwquality.so try_first_pass retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
在实际生产部署中,我通常会先通过虚拟机进行全流程测试,记录所有交互步骤和时间点,形成详细的部署手册。对于关键业务系统,建议采用蓝绿部署策略,先在新环境完整部署并验证后,再通过负载均衡逐步切换流量。