001服务器操作系统基础原理笔记
2017-04-05 20:35
204 查看
存储在介质中数据的三要素:文件名,数据,元数据(meta-data)(权限,所有者,修改时间等)
高速度的CPU运算能力
长时间的可靠运行
强大的I/O外部数据吞吐能力
更好的可扩展性
1964年,IBM推出的第一台大型机system 360,成为真正意义上的服务器。
1965年,DEC公司开发了一款小型机PDP-8(不同于现在的小型机)掀起了一场小型机的革命;
90年代,Unix服务器新概念小型机;通常采用RISC CPU和Unix操作系统。
1989年,Inter公司,康柏公司生产了第一台X86服务器(现在成为市场主流,出货量占比98%,销售额占比80%);
核心部件CPU一直在遵循摩尔定律进行快速的演进和创新。
机架式服务器
刀片式服务器
高密度服务器
一路服务器
双路服务器
四路服务器
多路服务器
有的Unix不采用CPU的数量进行分类,而是采用CPU的内核数量进行分类,早期的CPU仅有一个内核,后来的新技术可以将多个内核封装在一个CPU芯片内,性能得到了数倍的提升。
采用RISC CPU的服务器通常用于Unix操作系统,国际通常称为Unix服务器
X86 CPU则采用的是CISC指令集,采用X86CPU的服务器称为X86服务器
应用服务器
Web服务器
接入服务器
文件服务器
另外还配置有主板、机箱、电源、风扇等基础的硬件
以及RAID卡、网卡等可选用的部件
三大件的通用化导致各厂商的服务器在原理上看大体差不多,当然也是各有差异:主要体现在产品的工业化、模块化的设计、RAS特性、可扩展、可管理性差异,以及品牌的服务能力等等。
Scale-out横向扩展架构
Hyper-converged超融合架构
Scale-up纵向扩展架构
主要是提升单台服务器的计算性能,主要包括高可靠性、高可用性、高扩展性
主要应用于:高性能的交易类业务,如:企业核心交易数据库、关键应用系统以及HPC高性能计算等业务。
Scale-up纵向扩展架构应用领域:
Scale-up纵向扩展架构被广泛应用于金融交易、电信计费、科学研究、气象分析等领域
Scale-out横向扩展架构
Scale-out横向扩展架构对单台服务器的要求不高,主要通过更多的服务器来协同完成任务。
Scale-out横向扩展架构的特点:
有高并发性能
低成本
高密度
节能低碳
统一管理
应用场所:
超大规模型数据中心、大数据扽西、公有云、web应用集群等业务场景。
Hyper-converged超融合架构
这种架构的理念是将计算、存储、网络和统一管理放在一个盒子里,可以做到开箱即用,一同一个整体的计算解决方案。
Hyper-converged超融合架构的特性:
高速的整体融合
简单易用
性能优化
消除了系统瓶颈,实现更好的整体的系统效能
应用场合:
高性能的数据分析
数据库整合
云计算资源池平台
一体化数据中心
C/S应用部署架构:
通常有一个集中共享的应用数据库,在使用者的PC机上安装相同或者不同的应用程序。这些应用程序能够操作或者共享应用的数据库,以便实现业务数据的协同操作、应用共享和统一保存。
C/S架构的缺点:配置应用和维护比较复杂,软件升级也需要每台客户端逐一的进行升级,你利于应用的灵活部署,不利于较大规模的客户应用和推广。
B/S架构:即Browse/Server三层模式的应用架构(客户端浏览器、应用服务器,数据库)
B/S架构的优点:
B/S架构的web客户端使用简单,免维护
业务应用软件、数据库系统则可以集中维护、统一部署、统一维护
非常适用于大规模的应用系统的部署于服务
如今百度等大企业普遍采用大规模分布式的数据库、Hadoop大数据集群、高密Scale-up水平扩展应用、搜索web集群接入的部署架构模式。
Unix服务器操作系统系统有AIX、Solaris、和HP-un11
X86服务器的操作系统主要有Linux和windows操作系统
云计算平台通常要安装:VMvare、FusionSphere、或者KVM等虚拟化系统,虚拟化系统可以将一个物理服务器模拟成多台小的虚拟化服务器来使用。通过服务器的虚拟化能够提供更好的资源使用效率,自动部署和简化管理
开源的中间件有:Tomcat、JBoss等
中间件的作用:中间件可以为上层的应用软件提供运行和开发环境,提供预制可复用的业务功能模块,API接口等,帮助用户灵活的、高效的开发和集成复杂的应用系统。
业务应用软件通常是基于数据库、中间件等基础结构平台之上。根据客户的需求进行定制开发,最终满足客户业务需求的软件系统。
数据库、中间件通常会对应PaaS云服务层
业务应用层软件则会面向SaaS层服务
1991年,Linus研发出Linux内核雏形;
1994年,Linux 1.0内核发布;
1995年以后,各种不同的Linux发行版本相继出现。(Redhat)
Linux发行版本(内核是一样的),最大的区别是发行版的侧重点不同。
Redhat 、SUSE Entprise、CentOS:侧重于网络服务,企业管理
Debian、Stackware:侧重于服务器及其稳定性
Ubuntu、Fedora、Open SUSE:侧重于用户体验
商业付费软件 免费公开源代码
多数是与硬件配套的 可运行在多种硬件平台上
对硬件的要求更为苛刻 对硬件要求没有Unix高
安装复杂 安装相对简易
使用比较复杂 使用相比Unix要简单
最稳定 稳定性次之
应用程序、外壳shell、内核kernel、硬件
外壳(Shell):是Linux的一个特殊程序,是用户与内核之间的命令解释器
常见的shell有:
Boume shell(sh):Unix最初使用的shell,并且在所有的Unix系统中均可以使用,在变成方面很是优秀,但是在处理与用户的交互方面有欠缺
C shell(csh)、Kom shell(ksh)
内核(Kernel):Linux操作系统的核心
管道,功能强大的shell: 管道-前一个程序的输出作为后一个程序的输入,shell是一种解释型高级语言。
安全保护机制,稳定性好:防止系统及其数据未经许可而被非法访问,稳定性Unix好于Linux,Linux好于Windows。
用户界面,强大的网络支持:常用命令行的方式,同时提供图形界面;TCP/IP协议就是Linux的缺省网络协议。
移植性好:源代码用C语言写成,便于移植到其它计算机上。
每个用户对于其持有的文件有它所适用的访问权限
GID:Group ID
用户ID信息文件:/etc/passwd
组ID信息文件:/etc/group
【1】/etc/passwd的文件结构:
/etc/passwd的文件记录的是单个用户的登录信息
里面有两条记录:root和smc
每一条记录被冒号分割称7个字段
分别是 用户名:密码:UID:GID:用户的描述:用户加目录:用户的shell类型
【2】/etc/group的文件结构:
/etc/group记录的是GID和用户组组名的一个对应关系
【1】新增用户:useradd
linux: ~ # useradd -d /home/ipcc -m -u 2000 -g mms -s /bin/csh ipcc
说明:useradd[参数] [用户名] -d: 设置用户的家目录 -m: 设置的家目录不存在时自动创建 -u: 设置用户的UID -g: 设置初始GID或者组名 -s: 指定用户的shell
如果没有设定参数,系统会自动读取/etc/default/useradd配置文件,指定相关用户组、shell等参数。
如果要查询,可以输入linux:~ # useradd -D读取基本配置。
【2】删除用户:userdel
userdel [参数] [用户名]
例如:
linux:~ # userdel ipcc //删除ipcc用户 linux:~ # userdel -r iptv //删除iptv用户及其家目录
【3】设置用户密码:passwd
linux:~ # passwd ipcc
【4】修改用户属性: usermod
usedmod [用户名] -d: 修改用户家目录 -g: 修改初始用户组
例:linux:~ # usermod -d /opt/ipcc ipcc
linux:~ # groupadd ipcc //不指定GID linux:~ # groupadd -g 2000 iptv //GID为2000
【2】删除用户组: groupdel
linux:~ # groupdel iptv
【3】修改用户组:groupmod
linux:~ # groupmod -g 2500 -n ipcc1 ipcc //修改GID为2500,组名为ipcc1
根目录下的子目录以及存放的内容:可以通过ls查看根目录下面的子目录
/sbin:即为System bin,是与操作系统有关的命令
/boot:内核与启动文件
/dev:存放的是各种设备文件
/etc:存放的是系统软件的启动和配置文件
/home:用户的主目录
/root:超级用户root的家目录
/usr:非系统的程序和命令
/var:系统专用的数据和配置文件
/opt:可选的应用软件包
/tmp:临时文件存放点
相当路径:基于当前路径的的文件名或者目录名写法,.代表当前目录 ..代表上一级目录。
变更工作目录:cd cd后面不跟任何路径,则是回到当前目录的家目录。
新增目录:mkdir -m指定存取模式 -p建立目录时建立其所有不存在的父目录。
删除目录:rmdir 删除空目录,如果删除非空目录,rm即可, –p删除目录及父目录
复制文件或目录 :cp+源文件或目录+目的文件或目录
移动文件或目录:mv +源文件或目录+目的文件或目录
删除文件或目录:rm+文件或目录
查找文件或目录:find +路径+参数 -name以指定字符串开头的文件名 -user 查找指定用户所拥有的文件。
more:翻页查看文件内容
less:翻页阅读,和more类似。但操作按键比more更加弹性。
head:查看文档的前面几行内容,默认为10行
tail:查看文件的后面几行内容,默认为10行
数据:文件的具体内容
元数据meta-data:文件有关的信息。例如文件的权限、所有者、文件的修 改时间等。
是否有日志?
传统型文件系统:写入文件内容的时候,先写数据,再写入元数据。在写入元数据前断电,会造成文件系统不一致。典型:ext2
日志型文件系统:写入文件内容的时候,先写日志记录文件(更安全)。 ext3=ext2上加入日志功能
ReiserFS基于平衡树,搜索快
如何查找数据?
索引式文件系统:文件属性数据和实际内容放在不同的区块,例如Linux中默认的ext2中,文件属性数据存放在inode(权限,所有者,修改时间,实际存放位置),实际内容放在block。
非索引式文件系统:只有block,数据需要一个block接一个block读取(下一个block位置存放在上一个block中),效率低。 windows下的FAT
碎片整理:就是写入的数据的block太过分散,此时读取的效率会很低。磁盘整理的目的 就是将这些分散的block尽量的集中起来。
1.选择分区类型
2.选择分区开始的磁柱
3.决定分区的大小
4.保存新建的分区 w
通过重启服务器或使用partprobe命令通知内核
创建文件系统:mkfs 参数 设备名,-t指定文件系统类型 -b指定block大小,单位bytes,ext2和ext3仅支持1024/2048/4096三种。
挂载文件系统:挂载的过程就是将文件系统和目录树上的某一个目录结合。mount+设备名+挂载点 -t 指定文件系统类型 -b指定block大小。
mount /dev/sda6 /root/testmount
df:查看文件系统的磁盘空间占用情况
–h以容易理解的格式打印出文件系统大小
–i显示inode信息而非块使用量。
du:查看文件或目录的磁盘使用空间
–a显示目录下的每个文件所占的磁盘空间
–s只显示大小的总和
-h以容易理解的格式输出文件大小值
查看系统打开的文件:lsof
Isof filename 显示打开指定文件的所有进程
Isof –c string 显示以指定字符开头的进程所有打开的文件
Isof –u username 显示所属user相关进程打开的文件
修复文件系统:
fsck:检查文件系统并尝试修复错误。
fsck -f /dev/sda6
e2fsck:检查和修复ext2和ext3文件系统
dumpe2fs /dev/sdb1 | grep superblock
e2fsck -f -b 32768 /dev/sda6
在传统的存储模型中,文件系统是直接构建在物理分区之上的,物理分区的大小决定了其上文件系统的存储容量,调整文件系统的存储容量变得比较繁琐。
LVM设计的主要目标是实现文件系统存储容量可扩展性,使对容量的调整更简易
物理分区:pp-physical partition,可以是硬盘的分区或者是read分区
物理卷:PV-physical volume,是pp的LVM抽象,维护了pp的结构信息,是组成VG的基本逻辑单元,一般一个PV对应一个pp
物理扩展单元:PE-physical extends,每个PV都会以pe为基本单元划分,是lvm的最小存储单元;
卷组:vg-volume group,由一个或者数个PV组成,可以看做LVM组合起来的大磁盘
逻辑扩展单元:LE-logical extends,组成LV的基本单元,一个LE对应一个pe
逻辑卷:LV-logical volume,建立在VG之上,文件系统之下,由若干个LE组成,文件系统是基于逻辑卷的。
想扩增VG的容量则可以通过增加PV的方式;
一般LVM默认的pe的大小是4M,最多有65534个pe,所以LVM的VG最大为256G;
LV和磁盘的dev/sda2分区类似,是用来格式化的单位。当对LV进行写入操作时LVM定位相应的LE,通过PV头部的映射表将数据写入到相应的PE上。
LV实现的关键在于PE和LE之间建立的映射关系,不同的映射规则决定了不同的LVM存储模型。
动态地扩展文件系统大小
增加新磁盘到LVM的存储池中
把不同的数据放在不同的卷组中
再通过pvcreat将Linux分区处理成物理卷pv
接下来通过vgcreate将创建好的物理卷处理成卷组vg
再通过lvcreate将卷组分成若干个逻辑卷LV
再通过mkfs工具将LV格式化
最后挂载格式化后的LV到文件系统
将普通的分区加上pv属性
例如将分区/dev/sda6创建为物理卷:pvcreate /dev/sda6
pvremove删除物理卷(语法和pvcreat一致)
pvscan查看物理卷信息
pvdisplay查看各个物理卷的详细参数
vgscan 查看卷组信息
vgdisplay 查看卷组的详细参数
vgreduce 缩小卷组,把物理卷从卷组中删除
vgextend 扩展卷组,把某个物理卷添加到卷组中
vgremove 删除卷组
lvscan 查看逻辑卷的信息
lvdisplay查看逻辑卷的具体参数
lvextend增大逻辑卷的大小
lvreduce减小逻辑卷的大小
lvremove 删除逻辑卷
先卸载逻辑卷
然后通过vgentend,lvextend等命令增大lv的空间
再使用resize2fs将逻辑卷容量增加
最后将逻辑卷挂载到目录树
缩小文件系统空间步骤:
先卸载逻辑卷
使用resize2fs将逻辑卷容量减小
然后通过vgreduce,lvreduce等命令减小lv的空间
最后将逻辑卷挂载到目录树
如果只运行ifconfig,则会查看所有的网口配置。如果要查询某一个,则需要通过ifconfig加上相应的网口来实现。
查看的内容包括:IP地址,广播地址,和掩码等。
相应的参数包括:IP,广播地址,和掩码等。
通过命令来配置网口会在重启网络服务或者操作系统后失效。
【2】修改配置文件的方式【更持久】
修改/etc/sysconfig/network/ifcfg-[网口]
/etc/sysconfig/network-scripts/ifcfg-eth0:0
编辑配置文件配置网口,使用ifup命令,启动网口
例如:
vi ifcfg-eth4
ifup ifcfg-eth4
打印出的内容共有8个字段
destination是目的网关和目的主机,如果是default的话,则表示是默认的路由
Getway:网关
Genmask:表示网段的掩码
Flags:是一个标记,如果标记位U,则表示这条路由是UP的,即为可用的。如果是G,则表示需要网关转发,如果是H(host),代表目的地是一个主机。
Interface:网络的一个出口
重启完操作系统之后会失效
route add -net 192.168.101.0 netmask 255.255.255.0 dev eth3
route add -host 192.168.101.100 dev eth1
route add -net 192.168.101.0 netmask 255.255.255.0 gw 192.168.0.101
【2】修改配置文件
修改/etc/sysconfig/network/routes这个文件
这个文件是用来保存静态路由数据
修改完之后,需要重启网络服务才能生效
【语法】ping[参数] 目的地址
参数:-c:后接执行ping的次数 ,例如:ping –c 5 10.77.215.5
Trace route:是用于侦测数据包从源到目的所经过的路由
【语法】traceroute<地址or主机名,打印出测数据包从源到目的所经过的路由
进程:加载内存中的程序,由CPU运行
守护进程:常驻内存,与终端无关的系统进程
用户进程:用户通过终端加载的进程。
系统中的每一个进程都有一个进程号—pid;pid=1的进程是init进程,是系统启动的第一个进程。
查看进程
(a)ps静态查看某一时间点进程信息
常用参数 a显示现行终端机下的所有程序
x显示所有程序,不以终端机来区分
u以用户为主的格式显示程序状况
f用ASCII字符显示树状结构
(b)top连续观察进程动态
默认3秒刷新一次,并按照CPU使用率的高到低排序
(c)pstree用ASCII字符显示树状结构,清楚表达进程间的相互关系
-p显示进程ID
-u显示用户名称
结束进程
(a)kill
结束进程和进程号PID,系统可能忽略
kill -9 PID 强制终止进程
(b)killall
终止同一进程组内的所有进程
kill httpd
前台:在终端接口上,可以出现提示符让用户操作的环境
后台:不显示终端接口的环境
任务管理意义是多项任务并行执行
相关命令(a)&
直接将程序放入后台处理
如 find /-name smcapp &
(b)jobs 查看当前shell的后台任务
(c)ctrl+z
将正在运行的任务放入后台暂停
(d)fg %[jobID] 将任务放入前台执行
(e)bg %[jobID]将任务放入后台执行,不加jobID表示对当前任务
周期任务管理 crontab [-u usre] [-e | -l| -r ]
-u:指定用户
-e:编辑crontab的内容
-l:查询crontab的内容
-r:移除所有的crontab任务内容
使用crontab –e编辑时,程序会直接调用vi接口,程序路径是/use/sbin/cron; 系统计划任务保存在/etc/crontab中; ar/spood/crontab/tabs下面有对应用户名的crontab,对应用户级别的任务配置;
ar/crontab对应系统级别的任务配置;
管理定时任务
at安排一个任务在未来执行,必须先启动atd进程
通过ps -1f | grep atd查看进程是否启动
at –l:相当于atq,列出当前at任务
at-d [jobID]:相当于atrm,删除一个at任务
at-c [jobID]:查看任务的具体内容
at使用方法:
at HH:MM —-今天的HH:MM执行
at HH:MM YYYY-MM-DO—-指定具体的执行日期和时间
at now +number [minutes |hours |days |weeks]—-当前时间往后多久执行
at HH:MM + number[minutes |hours |days |weeks]—-某个时间点+分钟|小时|天|星期执行
系统是否正常启动?
系统负载如何?
系统是否有非法用户登录?
监控系统是否正常启动
系统启动时会显示信息,未显示信息会保存在Kernel Ring Buffer中,
命令:dmesg|less:显示Kernel Ring Buffer中的开机信息
启动后,启动信息写入var/log/boot.msg文件中,比上述信息更详细
监控系统硬件信息
cat /proc/…:系统信息
系统硬件信息保存在/proc下的文件中
·/proc/cpuinfo:cpu的信息
·/proc/devices:已经加载的设备信息
·/proc/bus:系统总线信息
·/proc/scsi scsi:设备信息
·/proc/net:网卡设备信息
Hwinfo:设备信息
显示所有硬件相关信息
·–disk 显示磁盘信息
·–cpu 显示cpu信息
·–memory 显示内存信息
·–network 显示网卡信息
·–short 显示硬件的摘要信息
例:linux:~# hwinfo -disk
iostat:CPU和I/O信息
查询CPU和磁盘I/O的统计信息
·-c 仅显示cpu统计信息
·-d 仅显示磁盘统计信息
·-k 以k为单位显示每秒的磁盘请求数
lspci:PCI信息
列出所有PCI设备
·-v 显示PCI接口装置的详细信息
·-vv 比-v更详细的信息
fdisk:硬盘信息
查看硬盘信息
·-| 查看服务器所挂硬盘个数及分区情况
监控系统和进程
·top 即使显示进程的动态
·uptime 查看系统已经开机的实践以及系统平均负载
·uname 查看系统版本相关信息。如内核号
·netstat 显示与IP、TCP、UDP协议相关的统计数据,用于检验本机个端口的网络连接情况
·ps 用来显示当前进程状态和top不同的是,查看到的是静态信息
监控用户登录信息
·who 查看当前登录系统的用户
参数:-H 显示各栏位的标题信息列
-m 效果同who am i,显示出自己在系统中的用户名,登录终端,登录时间
·w[参数][用户] 查看当前登陆的用户及用户当前的工作
-u 后面接user,查看具体用户信息
·finger[参数][用户] 查看用户详细信息
-s 短格式显示用户信息
-l 长格式显示用户信息
·last[参数] 查看曾经登陆过系统的用户
-n num 设置列出名单的显示列数
-F 显示登陆和登出的详细信息
·lastlog[参数][用户] 查看用户前一次登录的信息
-t days 查看距今天n天内登陆了系统的用户的最近一次登录信息
-u 显示登录和登出的详细信息
01 服务器定义及发展史
1.服务器的概念
服务器也会一种计算机,但是运行更快,负载更高,价格更贵。2.服务器的客户机
客户机可以时我们直接用的PC机,手机,其他的服务器,ATM机,火车飞机等3.服务器的特性
通常不会直接接触,而是通过网络来为我们提供服务高速度的CPU运算能力
长时间的可靠运行
强大的I/O外部数据吞吐能力
更好的可扩展性
4.服务器的应用业务
银行、企业等核心数据库,关键业务应用系统5.服务器的基础服务业务
Email及即时通讯、web服务、虚拟化、文件打印等基础IT服务业务6.工业4.0
第一台电子计算机 1946年1964年,IBM推出的第一台大型机system 360,成为真正意义上的服务器。
1965年,DEC公司开发了一款小型机PDP-8(不同于现在的小型机)掀起了一场小型机的革命;
90年代,Unix服务器新概念小型机;通常采用RISC CPU和Unix操作系统。
1989年,Inter公司,康柏公司生产了第一台X86服务器(现在成为市场主流,出货量占比98%,销售额占比80%);
核心部件CPU一直在遵循摩尔定律进行快速的演进和创新。
02 服务器的类型
1.服务器按照外形分类
塔式服务器机架式服务器
刀片式服务器
高密度服务器
2.服务器按照CPU数量分类
这种分类方法也最常体现到不同厂家服务器类型的分类上,华为的RH2288为两路服务器,RH5885为四路服务器,RH8100为八路服务器一路服务器
双路服务器
四路服务器
多路服务器
有的Unix不采用CPU的数量进行分类,而是采用CPU的内核数量进行分类,早期的CPU仅有一个内核,后来的新技术可以将多个内核封装在一个CPU芯片内,性能得到了数倍的提升。
3.服务器按照指令集分类
RISC精简指令集和CISC复杂指令集CPU采用RISC CPU的服务器通常用于Unix操作系统,国际通常称为Unix服务器
X86 CPU则采用的是CISC指令集,采用X86CPU的服务器称为X86服务器
4.服务器按照应用分类
数据库服务器应用服务器
Web服务器
接入服务器
文件服务器
5.服务器发展变化
随着服务器的不断地发展,服务器的性能不断的提升,服务器的外形也不断发生着变化,体积不断的缩小,更加的节能省电。从塔式服务器发展为更小的机架式服务器,后来又推出了高密、节能、管理优化的刀片式服务器,性能也增加了许多6. 服务器的硬件组件构成
主要包含CPU,内存、硬盘三大组件(成本占服务器的成本的2/3)另外还配置有主板、机箱、电源、风扇等基础的硬件
以及RAID卡、网卡等可选用的部件
7.主流的服务器的供应商
处理IBM、Oracle等厂商的大小型机以外,各厂商的X86服务器都是跟着Inter的产品开发节奏走的。三大件的通用化导致各厂商的服务器在原理上看大体差不多,当然也是各有差异:主要体现在产品的工业化、模块化的设计、RAS特性、可扩展、可管理性差异,以及品牌的服务能力等等。
03 服务器的技术和架构
1.服务器技术架构的三大发展趋势
Scale-up纵向扩展架构Scale-out横向扩展架构
Hyper-converged超融合架构
Scale-up纵向扩展架构
主要是提升单台服务器的计算性能,主要包括高可靠性、高可用性、高扩展性
主要应用于:高性能的交易类业务,如:企业核心交易数据库、关键应用系统以及HPC高性能计算等业务。
Scale-up纵向扩展架构应用领域:
Scale-up纵向扩展架构被广泛应用于金融交易、电信计费、科学研究、气象分析等领域
Scale-out横向扩展架构
Scale-out横向扩展架构对单台服务器的要求不高,主要通过更多的服务器来协同完成任务。
Scale-out横向扩展架构的特点:
有高并发性能
低成本
高密度
节能低碳
统一管理
应用场所:
超大规模型数据中心、大数据扽西、公有云、web应用集群等业务场景。
Hyper-converged超融合架构
这种架构的理念是将计算、存储、网络和统一管理放在一个盒子里,可以做到开箱即用,一同一个整体的计算解决方案。
Hyper-converged超融合架构的特性:
高速的整体融合
简单易用
性能优化
消除了系统瓶颈,实现更好的整体的系统效能
应用场合:
高性能的数据分析
数据库整合
云计算资源池平台
一体化数据中心
2.业务应用和服务器的部署
早期是单机应用:子一台服务器上部署了所有的应用软件,为一个或者几个用户提供计算或者业务服务,这种单机系统通常也被称为工作站。C/S应用部署架构:
通常有一个集中共享的应用数据库,在使用者的PC机上安装相同或者不同的应用程序。这些应用程序能够操作或者共享应用的数据库,以便实现业务数据的协同操作、应用共享和统一保存。
C/S架构的缺点:配置应用和维护比较复杂,软件升级也需要每台客户端逐一的进行升级,你利于应用的灵活部署,不利于较大规模的客户应用和推广。
B/S架构:即Browse/Server三层模式的应用架构(客户端浏览器、应用服务器,数据库)
B/S架构的优点:
B/S架构的web客户端使用简单,免维护
业务应用软件、数据库系统则可以集中维护、统一部署、统一维护
非常适用于大规模的应用系统的部署于服务
3.服务器互联网应用部署架构
互联网业务是典型的B/S架构如今百度等大企业普遍采用大规模分布式的数据库、Hadoop大数据集群、高密Scale-up水平扩展应用、搜索web集群接入的部署架构模式。
04 服务器上层软件架构
1.服务器的系统安装和业务部署
服务器之上首先要做安装OS操作系统Unix服务器操作系统系统有AIX、Solaris、和HP-un11
X86服务器的操作系统主要有Linux和windows操作系统
云计算平台通常要安装:VMvare、FusionSphere、或者KVM等虚拟化系统,虚拟化系统可以将一个物理服务器模拟成多台小的虚拟化服务器来使用。通过服务器的虚拟化能够提供更好的资源使用效率,自动部署和简化管理
2.主要的服务器数据库
Oracle、IBM DB2、Mysql、SQL server、SYBASE、以及国产的人大金仓和达梦数据库等3.主要的服务器的中间件
以java中间件为主,比如webLogical和WebSphere,Tuxedo、东方通等开源的中间件有:Tomcat、JBoss等
中间件的作用:中间件可以为上层的应用软件提供运行和开发环境,提供预制可复用的业务功能模块,API接口等,帮助用户灵活的、高效的开发和集成复杂的应用系统。
4.主要服务器业务应用
业务应用层软件是面向客户的应用逻辑层软件,如ERP、CRM、HR等应用软件;业务应用软件通常是基于数据库、中间件等基础结构平台之上。根据客户的需求进行定制开发,最终满足客户业务需求的软件系统。
5.与云计算服务架构对应关系
通常来讲包括服务器、存储、网络等硬件基础设施,对应的IaaS云服务层。数据库、中间件通常会对应PaaS云服务层
业务应用层软件则会面向SaaS层服务
05 Linux概述
1.Unix的发展
2.Linux 的产生和发展:
1986年,Tanenbaum研发出MINIX,并于次年发布;1991年,Linus研发出Linux内核雏形;
1994年,Linux 1.0内核发布;
1995年以后,各种不同的Linux发行版本相继出现。(Redhat)
Linux发行版本(内核是一样的),最大的区别是发行版的侧重点不同。
Redhat 、SUSE Entprise、CentOS:侧重于网络服务,企业管理
Debian、Stackware:侧重于服务器及其稳定性
Ubuntu、Fedora、Open SUSE:侧重于用户体验
3. Unix和Linux的区别:
Unix Linux商业付费软件 免费公开源代码
多数是与硬件配套的 可运行在多种硬件平台上
对硬件的要求更为苛刻 对硬件要求没有Unix高
安装复杂 安装相对简易
使用比较复杂 使用相比Unix要简单
最稳定 稳定性次之
4.Linux的结构
Linux的结构包含4个部分:应用程序、外壳shell、内核kernel、硬件
外壳(Shell):是Linux的一个特殊程序,是用户与内核之间的命令解释器
常见的shell有:
Boume shell(sh):Unix最初使用的shell,并且在所有的Unix系统中均可以使用,在变成方面很是优秀,但是在处理与用户的交互方面有欠缺
C shell(csh)、Kom shell(ksh)
内核(Kernel):Linux操作系统的核心
5. Linux的特点:
多任务,多用户:CPU时间分片,分给不同的进程;允许多个用户同时登陆使用。管道,功能强大的shell: 管道-前一个程序的输出作为后一个程序的输入,shell是一种解释型高级语言。
安全保护机制,稳定性好:防止系统及其数据未经许可而被非法访问,稳定性Unix好于Linux,Linux好于Windows。
用户界面,强大的网络支持:常用命令行的方式,同时提供图形界面;TCP/IP协议就是Linux的缺省网络协议。
移植性好:源代码用C语言写成,便于移植到其它计算机上。
06.linux用户和用户组管理
1.Linux的用户和用户组
Linux的用户会归属于用户组,归属于统一用户组的用户对于一些公共文件具有相同的访问权限每个用户对于其持有的文件有它所适用的访问权限
2.linux是如何管理用户和用户组的?—通过UID和GID
UID:User IDGID:Group ID
3.UID和GID是怎么存储的?
通过以下两个存储文件用户ID信息文件:/etc/passwd
组ID信息文件:/etc/group
【1】/etc/passwd的文件结构:
/etc/passwd的文件记录的是单个用户的登录信息
里面有两条记录:root和smc
每一条记录被冒号分割称7个字段
分别是 用户名:密码:UID:GID:用户的描述:用户加目录:用户的shell类型
【2】/etc/group的文件结构:
/etc/group记录的是GID和用户组组名的一个对应关系
4.用户管理的常用命令
用户查询常用命令:id(查询当前登录用户的GID、UID)、finger(查询当前用户属性信息,如家目录和用户类型)【1】新增用户:useradd
linux: ~ # useradd -d /home/ipcc -m -u 2000 -g mms -s /bin/csh ipcc
说明:useradd[参数] [用户名] -d: 设置用户的家目录 -m: 设置的家目录不存在时自动创建 -u: 设置用户的UID -g: 设置初始GID或者组名 -s: 指定用户的shell
如果没有设定参数,系统会自动读取/etc/default/useradd配置文件,指定相关用户组、shell等参数。
如果要查询,可以输入linux:~ # useradd -D读取基本配置。
【2】删除用户:userdel
userdel [参数] [用户名]
例如:
linux:~ # userdel ipcc //删除ipcc用户 linux:~ # userdel -r iptv //删除iptv用户及其家目录
【3】设置用户密码:passwd
linux:~ # passwd ipcc
【4】修改用户属性: usermod
usedmod [用户名] -d: 修改用户家目录 -g: 修改初始用户组
例:linux:~ # usermod -d /opt/ipcc ipcc
5.用户组管理常用命令
【1】新增用户组:groupaddlinux:~ # groupadd ipcc //不指定GID linux:~ # groupadd -g 2000 iptv //GID为2000
【2】删除用户组: groupdel
linux:~ # groupdel iptv
【3】修改用户组:groupmod
linux:~ # groupmod -g 2500 -n ipcc1 ipcc //修改GID为2500,组名为ipcc1
07.linux文件和目录管理
1.Linux的目录结构
Linux的文件结构类似于倒树形结构。根目录下的子目录以及存放的内容:可以通过ls查看根目录下面的子目录
2.根目录下各子目录存放的内容
/bin:存放的是构建最小系统所需要的命令/sbin:即为System bin,是与操作系统有关的命令
/boot:内核与启动文件
/dev:存放的是各种设备文件
/etc:存放的是系统软件的启动和配置文件
/home:用户的主目录
/root:超级用户root的家目录
/usr:非系统的程序和命令
/var:系统专用的数据和配置文件
/opt:可选的应用软件包
/tmp:临时文件存放点
3.重要概念
绝对路径:由根目录(/)开始写起的文件名或者目录名。相当路径:基于当前路径的的文件名或者目录名写法,.代表当前目录 ..代表上一级目录。
4.文件和目录的基本操作
显示当前的工作目录:pwd变更工作目录:cd cd后面不跟任何路径,则是回到当前目录的家目录。
新增目录:mkdir -m指定存取模式 -p建立目录时建立其所有不存在的父目录。
删除目录:rmdir 删除空目录,如果删除非空目录,rm即可, –p删除目录及父目录
复制文件或目录 :cp+源文件或目录+目的文件或目录
移动文件或目录:mv +源文件或目录+目的文件或目录
删除文件或目录:rm+文件或目录
查找文件或目录:find +路径+参数 -name以指定字符串开头的文件名 -user 查找指定用户所拥有的文件。
5.查看文件内容:
cat:直接查阅文件内容,不能翻页more:翻页查看文件内容
less:翻页阅读,和more类似。但操作按键比more更加弹性。
head:查看文档的前面几行内容,默认为10行
tail:查看文件的后面几行内容,默认为10行
08 Linux文件系统管理
1文件系统的概念
操作系统用于明确存储和组织计算机数据的方法。使得对数据的查找和访问变得更加容易。2存储在介质中数据的三个因素
文件名:定位存储的位置数据:文件的具体内容
元数据meta-data:文件有关的信息。例如文件的权限、所有者、文件的修 改时间等。
3文件系统的分类
Linux支持的文件系统类型可查看/etc/filesystems是否有日志?
传统型文件系统:写入文件内容的时候,先写数据,再写入元数据。在写入元数据前断电,会造成文件系统不一致。典型:ext2
日志型文件系统:写入文件内容的时候,先写日志记录文件(更安全)。 ext3=ext2上加入日志功能
ReiserFS基于平衡树,搜索快
如何查找数据?
索引式文件系统:文件属性数据和实际内容放在不同的区块,例如Linux中默认的ext2中,文件属性数据存放在inode(权限,所有者,修改时间,实际存放位置),实际内容放在block。
非索引式文件系统:只有block,数据需要一个block接一个block读取(下一个block位置存放在上一个block中),效率低。 windows下的FAT
碎片整理:就是写入的数据的block太过分散,此时读取的效率会很低。磁盘整理的目的 就是将这些分散的block尽量的集中起来。
4配置文件系统分区
创建分区:mkfs(fdisk好像不对)+设备名,输入完该命令之后,可以通过参数m查看按键操作说明,通过参数p可以得到本磁盘的相关信息,输入n命令可以新建一个分区。使用完n之后,新建分区的步骤如下:1.选择分区类型
2.选择分区开始的磁柱
3.决定分区的大小
4.保存新建的分区 w
通过重启服务器或使用partprobe命令通知内核
创建文件系统:mkfs 参数 设备名,-t指定文件系统类型 -b指定block大小,单位bytes,ext2和ext3仅支持1024/2048/4096三种。
挂载文件系统:挂载的过程就是将文件系统和目录树上的某一个目录结合。mount+设备名+挂载点 -t 指定文件系统类型 -b指定block大小。
mount /dev/sda6 /root/testmount
5管理Linux文件系统
查看分区使用情况:df:查看文件系统的磁盘空间占用情况
–h以容易理解的格式打印出文件系统大小
–i显示inode信息而非块使用量。
du:查看文件或目录的磁盘使用空间
–a显示目录下的每个文件所占的磁盘空间
–s只显示大小的总和
-h以容易理解的格式输出文件大小值
查看系统打开的文件:lsof
Isof filename 显示打开指定文件的所有进程
Isof –c string 显示以指定字符开头的进程所有打开的文件
Isof –u username 显示所属user相关进程打开的文件
修复文件系统:
fsck:检查文件系统并尝试修复错误。
fsck -f /dev/sda6
e2fsck:检查和修复ext2和ext3文件系统
dumpe2fs /dev/sdb1 | grep superblock
e2fsck -f -b 32768 /dev/sda6
09 Linux LVM配置
1. LVM原理
Logical volume manager,是建立在硬盘和分区之间的一个逻辑层,用来提高磁盘分区管理的灵活性。在传统的存储模型中,文件系统是直接构建在物理分区之上的,物理分区的大小决定了其上文件系统的存储容量,调整文件系统的存储容量变得比较繁琐。
LVM设计的主要目标是实现文件系统存储容量可扩展性,使对容量的调整更简易
2. LVM架构
物理分区:pp-physical partition,可以是硬盘的分区或者是read分区
物理卷:PV-physical volume,是pp的LVM抽象,维护了pp的结构信息,是组成VG的基本逻辑单元,一般一个PV对应一个pp
物理扩展单元:PE-physical extends,每个PV都会以pe为基本单元划分,是lvm的最小存储单元;
卷组:vg-volume group,由一个或者数个PV组成,可以看做LVM组合起来的大磁盘
逻辑扩展单元:LE-logical extends,组成LV的基本单元,一个LE对应一个pe
逻辑卷:LV-logical volume,建立在VG之上,文件系统之下,由若干个LE组成,文件系统是基于逻辑卷的。
3. VG、LV、PE的关系
LVM是通过交换pe来达到弹性变更文件系统的大小;想扩增VG的容量则可以通过增加PV的方式;
一般LVM默认的pe的大小是4M,最多有65534个pe,所以LVM的VG最大为256G;
LV和磁盘的dev/sda2分区类似,是用来格式化的单位。当对LV进行写入操作时LVM定位相应的LE,通过PV头部的映射表将数据写入到相应的PE上。
LV实现的关键在于PE和LE之间建立的映射关系,不同的映射规则决定了不同的LVM存储模型。
4. LVM优点
文件系统可以跨多个磁盘动态地扩展文件系统大小
增加新磁盘到LVM的存储池中
5. 使用LVM的要点
按需分配文献系统的大小把不同的数据放在不同的卷组中
6. LVM的配置流程
首先通过fdisk将systernID修改为LVM标记再通过pvcreat将Linux分区处理成物理卷pv
接下来通过vgcreate将创建好的物理卷处理成卷组vg
再通过lvcreate将卷组分成若干个逻辑卷LV
再通过mkfs工具将LV格式化
最后挂载格式化后的LV到文件系统
7. 物理卷管理
pvcreate创建物理卷将普通的分区加上pv属性
例如将分区/dev/sda6创建为物理卷:pvcreate /dev/sda6
pvremove删除物理卷(语法和pvcreat一致)
pvscan查看物理卷信息
pvdisplay查看各个物理卷的详细参数
8. 卷组管理命令
vgcreate 创建卷组vgscan 查看卷组信息
vgdisplay 查看卷组的详细参数
vgreduce 缩小卷组,把物理卷从卷组中删除
vgextend 扩展卷组,把某个物理卷添加到卷组中
vgremove 删除卷组
9. 逻辑卷管理
lvcreate创建逻辑卷lvscan 查看逻辑卷的信息
lvdisplay查看逻辑卷的具体参数
lvextend增大逻辑卷的大小
lvreduce减小逻辑卷的大小
lvremove 删除逻辑卷
10. 管理文献系统空间
增大文件系统空间步骤:先卸载逻辑卷
然后通过vgentend,lvextend等命令增大lv的空间
再使用resize2fs将逻辑卷容量增加
最后将逻辑卷挂载到目录树
缩小文件系统空间步骤:
先卸载逻辑卷
使用resize2fs将逻辑卷容量减小
然后通过vgreduce,lvreduce等命令减小lv的空间
最后将逻辑卷挂载到目录树
10 Linux网络管理
1.如何查看网口的配置 ifconfig
通常使用ifconfig命令来查看网口的配置如果只运行ifconfig,则会查看所有的网口配置。如果要查询某一个,则需要通过ifconfig加上相应的网口来实现。
查看的内容包括:IP地址,广播地址,和掩码等。
2.修改网口的配置
【1】命令的方式:ifconfig+网口+相应的参数来实现相应的参数包括:IP,广播地址,和掩码等。
通过命令来配置网口会在重启网络服务或者操作系统后失效。
【2】修改配置文件的方式【更持久】
修改/etc/sysconfig/network/ifcfg-[网口]
/etc/sysconfig/network-scripts/ifcfg-eth0:0
编辑配置文件配置网口,使用ifup命令,启动网口
例如:
vi ifcfg-eth4
ifup ifcfg-eth4
3.如何查询和配置路由
通过route这条命令来查询本机的路由表打印出的内容共有8个字段
destination是目的网关和目的主机,如果是default的话,则表示是默认的路由
Getway:网关
Genmask:表示网段的掩码
Flags:是一个标记,如果标记位U,则表示这条路由是UP的,即为可用的。如果是G,则表示需要网关转发,如果是H(host),代表目的地是一个主机。
Interface:网络的一个出口
4.新增路由
【1】命令的方式:通过route add这个命令重启完操作系统之后会失效
route add -net 192.168.101.0 netmask 255.255.255.0 dev eth3
route add -host 192.168.101.100 dev eth1
route add -net 192.168.101.0 netmask 255.255.255.0 gw 192.168.0.101
【2】修改配置文件
修改/etc/sysconfig/network/routes这个文件
这个文件是用来保存静态路由数据
修改完之后,需要重启网络服务才能生效
5.侦测网络
Ping:是检测对方的网络是否可达,或者是网络的连接速度的命令【语法】ping[参数] 目的地址
参数:-c:后接执行ping的次数 ,例如:ping –c 5 10.77.215.5
Trace route:是用于侦测数据包从源到目的所经过的路由
【语法】traceroute<地址or主机名,打印出测数据包从源到目的所经过的路由
11进程和任务管理
1. 进程管理
程序:文件中保存的一系列可执行命令进程:加载内存中的程序,由CPU运行
守护进程:常驻内存,与终端无关的系统进程
用户进程:用户通过终端加载的进程。
系统中的每一个进程都有一个进程号—pid;pid=1的进程是init进程,是系统启动的第一个进程。
查看进程
(a)ps静态查看某一时间点进程信息
常用参数 a显示现行终端机下的所有程序
x显示所有程序,不以终端机来区分
u以用户为主的格式显示程序状况
f用ASCII字符显示树状结构
(b)top连续观察进程动态
默认3秒刷新一次,并按照CPU使用率的高到低排序
(c)pstree用ASCII字符显示树状结构,清楚表达进程间的相互关系
-p显示进程ID
-u显示用户名称
结束进程
(a)kill
结束进程和进程号PID,系统可能忽略
kill -9 PID 强制终止进程
(b)killall
终止同一进程组内的所有进程
kill httpd
2. 任务管理
任务:登陆系统取得shell后,在单一终端接口下启动的进程前台:在终端接口上,可以出现提示符让用户操作的环境
后台:不显示终端接口的环境
任务管理意义是多项任务并行执行
相关命令(a)&
直接将程序放入后台处理
如 find /-name smcapp &
(b)jobs 查看当前shell的后台任务
(c)ctrl+z
将正在运行的任务放入后台暂停
(d)fg %[jobID] 将任务放入前台执行
(e)bg %[jobID]将任务放入后台执行,不加jobID表示对当前任务
周期任务管理 crontab [-u usre] [-e | -l| -r ]
-u:指定用户
-e:编辑crontab的内容
-l:查询crontab的内容
-r:移除所有的crontab任务内容
使用crontab –e编辑时,程序会直接调用vi接口,程序路径是/use/sbin/cron; 系统计划任务保存在/etc/crontab中; ar/spood/crontab/tabs下面有对应用户名的crontab,对应用户级别的任务配置;
ar/crontab对应系统级别的任务配置;
管理定时任务
at安排一个任务在未来执行,必须先启动atd进程
通过ps -1f | grep atd查看进程是否启动
at –l:相当于atq,列出当前at任务
at-d [jobID]:相当于atrm,删除一个at任务
at-c [jobID]:查看任务的具体内容
at使用方法:
at HH:MM —-今天的HH:MM执行
at HH:MM YYYY-MM-DO—-指定具体的执行日期和时间
at now +number [minutes |hours |days |weeks]—-当前时间往后多久执行
at HH:MM + number[minutes |hours |days |weeks]—-某个时间点+分钟|小时|天|星期执行
12.Linux系统监控
系统管理员监控项目:系统是否正常启动?
系统负载如何?
系统是否有非法用户登录?
监控系统是否正常启动
系统启动时会显示信息,未显示信息会保存在Kernel Ring Buffer中,
命令:dmesg|less:显示Kernel Ring Buffer中的开机信息
启动后,启动信息写入var/log/boot.msg文件中,比上述信息更详细
监控系统硬件信息
cat /proc/…:系统信息
系统硬件信息保存在/proc下的文件中
·/proc/cpuinfo:cpu的信息
·/proc/devices:已经加载的设备信息
·/proc/bus:系统总线信息
·/proc/scsi scsi:设备信息
·/proc/net:网卡设备信息
Hwinfo:设备信息
显示所有硬件相关信息
·–disk 显示磁盘信息
·–cpu 显示cpu信息
·–memory 显示内存信息
·–network 显示网卡信息
·–short 显示硬件的摘要信息
例:linux:~# hwinfo -disk
iostat:CPU和I/O信息
查询CPU和磁盘I/O的统计信息
·-c 仅显示cpu统计信息
·-d 仅显示磁盘统计信息
·-k 以k为单位显示每秒的磁盘请求数
lspci:PCI信息
列出所有PCI设备
·-v 显示PCI接口装置的详细信息
·-vv 比-v更详细的信息
fdisk:硬盘信息
查看硬盘信息
·-| 查看服务器所挂硬盘个数及分区情况
监控系统和进程
·top 即使显示进程的动态
·uptime 查看系统已经开机的实践以及系统平均负载
·uname 查看系统版本相关信息。如内核号
·netstat 显示与IP、TCP、UDP协议相关的统计数据,用于检验本机个端口的网络连接情况
·ps 用来显示当前进程状态和top不同的是,查看到的是静态信息
监控用户登录信息
·who 查看当前登录系统的用户
参数:-H 显示各栏位的标题信息列
-m 效果同who am i,显示出自己在系统中的用户名,登录终端,登录时间
·w[参数][用户] 查看当前登陆的用户及用户当前的工作
-u 后面接user,查看具体用户信息
·finger[参数][用户] 查看用户详细信息
-s 短格式显示用户信息
-l 长格式显示用户信息
·last[参数] 查看曾经登陆过系统的用户
-n num 设置列出名单的显示列数
-F 显示登陆和登出的详细信息
·lastlog[参数][用户] 查看用户前一次登录的信息
-t days 查看距今天n天内登陆了系统的用户的最近一次登录信息
-u 显示登录和登出的详细信息
相关文章推荐
- jdk的配置和JVM内部原理 java 基础学习笔记 第一天
- 融合式基础架构--《VMware网络技术原理与实践》笔记
- unity3D学习之音频基础原理-audio菜鸟笔记3
- 【华为网赛学习笔记第二日】【01】服务器操作系统基础原理(下)
- 【华为网赛学习笔记第二日】【01】服务器操作系统基础原理(中)
- 网络原理笔记2-数据通讯基础
- 【黑客免杀攻防】读书笔记1 - 初级免杀基础理论(反病毒软件特征码提取介绍、免杀原理、壳)
- 005数据库基础原理笔记
- Android基础笔记(十三)- 内容提供者原理和简单使用
- Java基础知识强化之网络编程笔记02:Socket通信原理图解
- Java基础知识强化之集合框架笔记47:Set集合之TreeSet保证元素唯一性和比较器排序的原理及代码实现(比较器排序)
- Android基础笔记(十三)- 内容提供者原理和简单使用
- 静态路由基础-路由交换原理10-【HCNA笔记】
- 学习笔记之javaweb基础:JSP的HelloWorld及其运行原理
- Java基础知识强化之集合框架笔记44:Set集合之TreeSet保证元素唯一性和自然排序的原理和图解
- VRP命令行基础-路由交换原理8-【HCNA笔记】
- 【华为网赛学习笔记第一日】【01】服务器操作系统基础原理
- 003云数据中心基础原理笔记
- 笔记:CNN基础原理
- Java基础知识强化之集合框架笔记11:Collection集合之迭代器的原理及源码解析