admin管理员组文章数量:1620914
1 本章概览
介绍Linux系统Linux运维与架构工程实践的方方面面
2 Linux系统基础入门
- 认识计算机和服务器核心硬件
- Linux发展历史、系统组成、应用领域以及发行版
- 搭建运维环境:VMWareWorkStation、SecureCRT的使用
- Linux系统的基本使用
- Shell入门以及命令概述
3 Linux系统管理
- 文件目录管理
- 用户管理
- 权限管理
- VIM编辑器的使用
- 文档压缩打包
- 程序包管理(安装、卸载)
- 网络管理
- 文件系统管理
- 内存管理
- 系统管理(监控、环境变量)
- 安全管理(selinux,iptables)
4 企业级应用服务管理
- 文件服务(Samba、NFS、SFTP)
- Web服务(HTTP协议、Apache、Nginx)
- LAMP/LNMP
- DNS
5 Shell编程实战
- Shell脚本入门
- Shell变量、条件语句(if、case)、函数
- Shell 循环(语句while、unit、for、select)
- Shell 控制循环
- Shell 数组
- sed和gawk应用进阶
- Shell 脚本开发范例
- Shell脚本的调试
- Shell脚本开发环境变量配置和优化实践
- Expect自动化交互程序应用实践
- 子Shell和Shell嵌套模式应用
- Shell面试题实战
6 高性能、高可用MySQL
- MySQL架构与历史
- MySQL基准测试
- 服务器性能剖析
- Schema与数据类型优化
- 创建高性能索引
- 查询性能优化
- MySQL高级特性
- 优化服务器设置
- 操作系统和硬件优化
- MySQL复制及其原理
- 可扩展的MySQL
- 高可用性
- 云端的MySQL
- 应用层优化
- 备份与恢复
- MySQL工具集
- MySQL Replicant库
- 二进制日志
- 高可用性复制
- 横向扩展复制
- 数据分片
- MySQL集群
- MySQL监控
7 负载均衡集群解决方案 HAProxy+LVS
8 高可用集群解决方案 Keepalived
9 高性能集群解决方案
10 运维工具使用
- ansible 自动化部署管理工具
- puppet 自动化配置管理工具
- fabric 自动化运维工具
- saltstack 自动化运维工具
11 运维监控
- Zabbix
12 Python自动化运维
- 构造B/S自动化运维平台
- 构造Linux系统安全审计功能
- 构建分布式质量监控平台
- 构建桌面版自动化运维平台
13 云计算
- OpenStack
14 大数据
Hadoop
- Hadoop生态圈(HDFS,Hive,HBase,Zookeeper,Pig,Impala,Kudu,Flume)
- Spark
- Strom
15 企业级虚拟化
- KVM
16 分布式消息中间件
- RabbitMQ
- RocketMQ
17 分布式MongoDB企业级应用
- MongoDB介绍
- MongoDB设计应用
- MongoDB复制
- MongoDB 分片
- MongoDB 应用管理
- MongoDB 服务管理
18 分布式Redis企业级应用
- 初识Redis
- API的理解与使用
- Redis常用的小功能
- Redis客户端
- Redis持久化
- Redis复制
- Redis的噩梦:阻塞
- 理解内存
- 哨兵
- 集群
- 缓存设计
- 开发运维的陷阱
- Redis监控运维平台CacheCloud
- Redis配置统计字典
19 分布式日志系统
- E(elasticsearch)
- L(Logstash)
- K(Kibana)
20 分布式MySQL中间件
- MyCat
21 分布式文件存储
- MooseFS
- GlusterFS
- FastDFS
22 虚拟化容器
- Docker
- Kubernetes
23 Linux系统调优
- Linux系统优化思路
- Linux系统性能评估与优化案例
- 内存、磁盘性能评估
- 网络性能评估
- 基于Web应用的性能评估
24 Java技术栈
- Tomcat
- Jenkins
- Git/Gitlab
- Maven
- Jira
计算机系统硬件概述
1 本章概览
介绍计算机的分类和基本组成、服务器及其硬件的使用场景以及各组件的IO性能汇总和互联网应用场景的解决方案。
2 计算机分类和硬件组成
2.1 计算机的分类
按照不同的用途,计算机的类型可以分为笔记本,PC台式机和服务器以及移动终端,通常笔记本的使用场景用于便携办公,PC台式机用于开发,设计等等,服务器用于大型互联网公司的后台服务和数据处理,区别于笔记本和PC台式机的显著不同之处在于服务器要实现处理高可用,高并发,高性能的业务场景。
2.2 计算机硬件的组成
现代计算机(冯诺依曼计算机体系)主要由CPU(运算器和控制器),存储器(内存和外存),IO设备(网卡)等五大核心组件组成的,它们各司其职,完成计算机的数据计算,数据存储和数据传输的任务。
3 认识服务器及其硬件的使用场景
DELL,HP和IBM是互联网公司中使用最常用的服务器品牌。
其中互联网公司中使用最广泛的品牌DELL常见的服务器型号按照不同的用途分为2u的R730/R830和4U的R930,其中1U表示高度为4.45cm。
服务器中重要的组件包含电源(如果是单台服务器通常都是双路电源,集群场景不需要使用双路电源),主板(类似于人体的骨架),CPU,内存和磁盘,网卡等等。
运维人员需要重点关注服务器的CPU、内存、磁盘三大核心组件!
CPU
CPU主要是负责数据的运算(算术,逻辑运算)和控制(协调其他计算机组件完成数据的存储、传输)等任务。
常用的CPU品牌是英特尔和AMD。
根据用途不同服务器的CPU通常是2-4颗,单颗CPU是4-8核,如果是做虚拟化宿主机则需要4-8颗CPU,虚拟6-10个虚拟机。内存
内存是编址的存储设备,主要是负责小容量数据的暂时存储,程序运行时会将数据加载到内存计算,断电后数据会丢失。
服务器的内存区间通常是16-256G(32G-64G更多),如果是做虚拟化的宿主机,内存总量一般是48-128G,用来虚拟6-10个虚拟机。
32位系统最多寻址2的32次方也就是4G个内存空间,64位系统最高寻址内存可以达到2的64次方也就是4G*4G内存空间,但是实际使用不了那么多,64位Linux支持内存为16EB磁盘
磁盘主要是负责永久性存储大容量(TB)数据(PB通过RAID来实现)。
服务器的磁盘接口类型通常分为SATA(转速7200-10000转/分),SAS(转速15000转/分),SSD三种。
通常不对外访问的业务(例如线下数据备份)采用SATA,STAT的特点是容量大,价格便宜但是速度比较慢。
而常规正式的工作场景选用SAS硬盘,机械磁盘转速高的性能好。
高并发,小数据量(TB)时选用SSD。
考虑到经济效益,互联网公司通常根据不同的应用场景都是SATA,SAS和SSD混合使用。
磁盘阵列(RAID)主要是解决网站数据量非常大,一块磁盘存放不下时可以将多块磁盘整合成一块盘,而网站的重要数据通常需要冗余备份。常见的raid级别包含raid0,raid1,raid5,raid10,从冗余,性能,成本三个不同方面考虑各个raid级别的排名如下:
冗余从好到坏: raid1,raid10,raid5,raid0
性能从高到底:raid0,raid10,raid5 ,raid1
成本从低到高:raid0 ,raid5,raid1 raid10
重要数据(例如数据库主库)考虑冗余性选择raid1,性能要求高(web服务器)选择raid5,raid0
4 计算机硬件的IO各层次性能汇总
组件名称 | 延时、带宽 |
---|---|
CPU | |
Cache L1,L2,L3 | 0.5-15ns、20-60GB/S |
内存 | 30-100ns、2-12GB/S |
SSD硬盘 | 10us-1ms、50MB-2GB/S |
普通硬盘 | 5-20ms、50-200MB/S |
网卡-网卡 | 100us-1ms、10MB-10GB/S |
从该表格中可以看出CPU延时(最低)和带宽(最高),而普通硬盘是性能最差的,根据木桶效应,在性能优化时应该优先优化磁盘。
5 互联网应用场景的解决方案
在面对高并发场景(例如抢红包,秒杀,淘宝的双11),通常都是将数据写入到内存(例如Memcache,Redis),当达到一定的量以后将数据定时定量的写入到磁盘,最终通过程序加载到内存对外提供访问。
将数据写入内存性能更高,速度快,然而可能断电会造成部分数据来不及写入磁盘,可以通过服务器主板安装蓄电池,或者选择双电路的机房来避免该情况。
而面对并发数据量不是很大,读多写少(99%的网站面对的场景都是读多写少)的场景通常是将数据写入到磁盘,再通过程序将磁盘的数据加载到内存对外提供访问。
写入数据到内存里,这个数据的内存空间称为缓冲区(Buffer)
从内存中读取数据,这个数据的内存空间称为缓存区(Cache)
Linux系统概述
1 本章概述
介绍计算机系统架构、Linux系统历史、系统组成、GNU组织和GPL协议、发行版以及应用场景和版本的选择
2 计算机系统架构
计算机系统架构主要是由硬件系统和软件系统组成,之前的文章中已经详细介绍了计算机硬件及其应用场景。
这里主要聊软件系统
软件主要由系统软件和应用软件组成,最典型的系统软件就是操作系统(OS)了。
操作系统介于系统硬件(CPU、内存、磁盘)和应用软件之间,主要是用于管理和分配硬件资源,给应用软件提供必要的运行环境。
提供硬件驱动管理,进程管理,内存管理,网络管理和安全管理的通用功能。
而最常见的操作系统(基于Intel X86)包括Windows,Unix/Linux,MacOS。
其中Windows,Linux(Ubuntu),MacOS主要运行在PC台式机,笔记本。
而Unix/Linux(RedHat,CentOS)主要是运行在服务器之上给用户提供服务。
3 Linux系统概述
3.1 Unix系统介绍
Unix系统于1969年诞生于AT&T的贝尔实验室,20世纪70年代后逐步流行,在这期间产生了一个重要的分支BSD,从BSD系统开始,各大产商和商业公司开始根据自己公司的硬件架构,并以BSD系统为基础进行Unix系统的研发,从而产生了各个不兼容的Unix。
目前主流的三大分支:IBM的AIX,Oracle的Solaris,HP公司的HP Unix。
Unix系统的主要特点
- 技术成熟、可靠性高:通常超大型银行、金融公司等可靠性要求性极高的公司会采用Unix作为服务器操作系统,但是Unix通常是随着硬件捆绑销售的。
- 支持主流CPU的架构:Intel/AMD,PowerPC,UltraSPARC
- 支持主流的数据库:Oracle,DB2,Informix
- 强大的开发功能:Unix促使C语言的诞生,而TCP/IP,XML,WWW都是诞生在Unix之上
3.2 Linux系统发展的历程
我们通常所说的Linux通常指的是内核(kernel),而从Linux系统架构图中看出如果只有内核,就不是一个完整的操作系统,还需要许多能够解决问题的应用程序。
由于Unix面临商业化版权制约以及源码面临闭源的问题,Ritchard Stallman发起了开发自由软件的运动,并成立自由软件基金会(FSF)和GNU项目以及GPL,最终开发了Linux系统的重要组件,包括GCC编译器,Emacs编辑器,bash命令解释程序和编程语言,gawk。
自由不代表免费,例如RedHat是自由但是不免费的操作系统
GPL是保证任何人有共享和修改自由软件的自由,任何人有权获取、修改、发布自由软件的源代码的权利,但同时给出具体的修改的源码。
而最早期的Linux内核是由Linus Torvalds在大学教授Andrew Tanenbaum开发的Minix基础之上开发的,1991年年底发布了Linux内核的0.02版本,自那以后全世界的开源爱好者们共同推进着Linux系统的发展,使其在服务器端,嵌入式和PC桌面得到了广泛的运用。
Linux系统=Linux内核+GNU项目组件+各种应用程序(Apache,Nginx,Zabbix)
完整的Linux系统架构图
内核主要是实现系统内存管理,软件程序管理,硬件设备管理,文件系统管理
GNU组件主要包含处理文件(gawk)、操作文本、管理进程的工具以及shell,gcc等等
常见的应用程序包含不同的图形化界面(KDE,GNOME,XFace),运行于桌面端的Firefox,Chrome和运行于服务端Nginx,Zabbix,Tomcat等等。
3.3 Linux系统的特点
Linux系统的特点(继承Unix之外的)
- 开放源代码、自由传播的类Unix
- 基于Intel X86系列CPU
- 支持多任务、多线程、多CPU、多用户
- 完善的图形用户界面:GNOME,KDE
- 完善的开发平台:Java/C/C++/Pythton
- 支持主流数据库:MySQL,Oracle,PostgreSQL
- 完善的网络服务:HTTP、WWW,SFTP,DNS,SSH等等
3.4 Linux系统的主流发行版
为了便于Linux系统的安装和使用,诞生了诸如RedHat公司的Linux发行商,将Linux内核和各种系统组件以及应用组件组合成一个完整的操作系统。
目前主流的Linux发行版主要由三个,分别是RedHat,Debian和Slackware,后续主流的RHEL,Ubuntu,Open SUSE都是基于前面三个分支演进而来的。
关于RHEL和CentOS的关系:CentOS是基于RHEL源码编译而来,仅仅去除了RHEL源码的商标以及非自由软件部分。
3.5 Linux系统的应用领域
经过20多年的发展,如今的Linux在服务器领域、桌面领域、移动嵌入式领域和云计算、大数据领域占据了广阔的市场。
其中服务器领域在全球占据了75%的市场份额
而Ubuntu也作为最流行的桌面版Linux,基本可以满足日常办公需要,但是普及远远不及Windows。
通过Linux系统架构图可以得知手机操作系统Android的内核就是基于Linux修改而来的。
3.6 Linux系统的版本选择
如果你想从事Linux系统运维与架构设计的工作,推荐使用CentOS7.3系统。
如果仅仅是想尝试下Linux的桌面版,推荐可以使用Open SUSE LEAP 42.3或者Ubuntu17.10
如果对系统稳定性、安全性有更高的要求可以使用FreeBSD
搭建Linux系统运维与架构环境(一)
1 本章概览
主要是介绍虚拟机使用以及硬件要求,同时介绍VMware Workstation的下载和安装。
还使用了VMware Workstation根据物理机的硬件创建虚拟机,为后期的安装CentOS7.3做准备。
2 虚拟机介绍
虚拟机(Virtual Machine)是指通过软件模拟的具有完整的硬件系统功能,运行在一个完全隔离环境中的完整计算机系统。
通过使用虚拟机,可以实现节省成本、安全便捷和简单高效的搭建系统运维和架构设计环境,当然你的物理机(宿主机)性能要足够的强悍。推荐笔记本配置如下:
CPU:Intel i7-7820HK
内存:32G/64G
磁盘:512 SSD+1T SATA
目前主流的虚拟机软件有Windows/Linux(Ubuntu)上的WMWare Workstation,VirtualBox和MacOS上的Paralles Desktop。
不推荐笔记本安装双系统,因为有些特殊软件没有Linux版本,例如PowerDesigner等等。
推荐在Windows上安装VMWare Workstation,然后安装CentOS7.3
3 VMware Workstation的下载和安装
3.1 VMware Workstation的下载
目前VMWareWorkStation的最新版本为VMware Workstation 12.5.7 Pro,谷歌自行搜索下载即可。
3.2 VMware Workstation的安装
VMware Workstation的安装非常简单,只需要在安装时选择路径,同意条款以及提供密钥即可,因为是收费软件,如果条件可以的话建议购买正版软件。
接下来将以图文的形式展示64位Windows10上VMware Workstation安装过程
第一步 启动安装
第二步 同意许可
第三步 选择安装路径
第四步 用户体验设置
第五步 设置快捷方式
第六步 开始安装
第七步 输入许可证
第八步 完成安装
4 使用VMware Workstation创建虚拟机
接下来将使用VMWare Workstation创建一台完整的电脑,说明下物理机的配置。
CPU :i5
内存: 16G
磁盘:128SSD+1T STAT
因为VMware Workstation在创建虚拟机时,根据物理机的不同配置会有不同的设置参数,读者可以根据自己物理机的配置进行调整。
预览VMware Workstation界面
第一步 使用新建虚拟机向导(快捷键Ctrl+N)
第二步 选择虚拟机兼容性
第三步 安装客户机操作系统
这里选择稍后安装
第四步 选择客户机操作系统
这里选择CentOS6.4位
第五步 命名虚拟机以及指定安装位置
虚拟机名称:CentOS7.3
位置:D:\Linux\CentOS
第六步 设置CPU
i5处理器设置2颗CPU,双核即可
i7处理器可以选择2颗CPU,4核
第七步 设置内存
内存推荐4G以上
第八步 设置网路类型
选择NAT或者桥接模式都可以
第九步 设置I/O控制器类型
选择推荐类型:LSI Logic(L)
第十步 选择磁盘类型
第十一步 创建磁盘
第十二步 设定磁盘容量
根据自身的磁盘容量设定
第十三步 指定磁盘文件
总览刚才的配置
第十四步 完成创建虚拟机
到这里虚拟机的创建工作就完成了,如果向修改之前的配置(以添加网卡为例子)可以通过如下图所示的操作来进行
编辑设置
添加网卡
版权声明:本文标题:Linux运维与架构工程实践 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728823115a1175471.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论