赞
踩
【云计算】云计算八股与云开发核心技术(虚拟化、分布式、容器化)
国内做公有云的主要有:腾讯云,阿里云,华为云(对外销售)
做垂直私有云的有:米哈游,字节火山,等等
云计算的三种服务模式(企业卖的东西)
常见应用:块存储、对象存储及文件存储服务,虚拟专用网络服务(VPN),负载均衡服务,虚拟防火墙及安全组隔离服务,桌面云服务,IDC托管云,企业私有云,大数据分析云服务,数据库云服务,媒体云服务,电信NFV云。
关键技术:
物理机时代
虚拟机的诞生
公有云和私有云的诞生(池化计算)
于是vmware有了自己的vcloud。
于是基于Xen和KVM的私有云平台CloudStack,后来Citrix将其收购后开源。
AWS最初就是基于Xen技术进行虚拟化的,并且最终形成了公有云平台。
私有云厂商和公有云厂商也拥有类似的技术,却在产品运营上呈现出完全不同的基因。
私有云厂商都是卖资源的,所以往往在卖私有云平台的时候往往伴随着卖计算,网络,存储设备。
公有云的厂商往往都是有自己的大规模应用需要部署的,所以其产品的设计,可以将常见的应用部署所需要的模块作为组件提供出来,用户可以像拼积木一样,拼接一个适用于自己应用的架构。
Rackspace与NASA合作创始了开源云平台OpenStack。从OpenStack的模块组成,可以看到云计算池化的方法。
计算池化模块Nova:OpenStack的计算虚拟化主要使用KVM,然而到底在那个物理机上开虚拟机呢,这要靠nova-scheduler。
网络池化模块Neutron:OpenStack的网络虚拟化主要使用Openvswitch,然而对于每一个Openvswitch的虚拟网络,虚拟网卡,VLAN,带宽的配置,不需要登录到集群上配置,Neutron可以通过SDN的方式进行配置。
存储池化模块Cinder:OpenStack的存储虚拟化,如果使用本地盘,则基于LVM,使用哪个LVM上分配的盘,也是用过scheduler来的。后来就有了将多台机器的硬盘打成一个池的方式Ceph,则调度的过程,则在Ceph层完成。
有了OpenStack,所有的私有云厂商都疯了,原来VMware在私有云市场实在赚的太多了,眼巴巴的看着,没有对应的平台可以和他抗衡。现在有了现成的框架,再加上自己的硬件设备,你可以想象到的所有的IT厂商的巨头,全部加入到社区里面来,将OpenStack开发为自己的产品,连同硬件设备一起,杀入私有云市场。 网易当然也没有错过这次风口,上线了自己的OpenStack集群,网易蜂巢基于OpenStack自主研发了IaaS服务,在计算虚拟化方面,通过裁剪KVM镜像,优化虚拟机启动流程等改进,实现了虚拟机的秒级别启动。在网络虚拟化方面,通过SDN和Openvswitch技术,实现了虚拟机之间的高性能互访。在存储虚拟化方面,通过优化Ceph存储,实现高性能云盘。
应用层的云计算
容器的诞生
于是容器应运而生。容器是Container,Container另一个意思是集装箱,其实容器的思想就是要变成软件交付的集装箱。集装箱的特点,一是打包,二是标准。
设想没有集装箱的时代,如果从A将货物运到B,中间要经过三个码头,换三次船的话,每次货物都要卸下船来,摆的七零八落,然后再换船的时候,需要重新整齐摆好,所以没有集装箱的时候,船员们都能够在岸上待几天再走。然而有了集装箱,所有的货物都打包在一起了,并且集装箱的尺寸全部一致,所以每次换船的时候,整体一个箱子搬过去就可以了,小时级别就能完成,船员再也不能上岸长时间休息了。所以设想A就是程序员,B就是用户,货物就是代码及运行环境,中间的三个码头分别是开发,测试,上线。
假设代码的运行环境如下:
1.Ubuntu操作系统
2.创建用户hadoop
3.下载解压缩JDK 1.7在某个目录下
4.将这个目录加入JAVA_HOME和PATH的环境变量里面
5.将环境变量的export放在hadoop用户的home目录下的.bashrc文件中
6.下载并解压缩tomcat 7
7.将war放到tomcat的webapp路径下面
8.修改tomcat的启动参数,将Java的Heap Size设为1024M
一个简单的Java网站,就需要考虑这么多零零散散的东西,如果不打包,就需要在开发,测试,生产的每个环境上查看保证环境的一致,甚至要将这些环境重新搭建一遍,就像每次将货物打散了重装一样麻烦,中间稍有差池,比如开发环境用了JDK 1.8,而线上是JDK 1.7,比如开发环境用了root用户,线上需要使用hadoop用户,都可能导致程序的运行失败。
容器如何对应用打包呢? 还是要学习集装箱,首先要有个封闭的环境,将货物封装起来,让货物之间互不干扰,互相隔离,这样装货卸货才方便。好在ubuntu中的lxc技术早就能做到这一点,这里主要使用了两种技术,一种是看起来是隔离的技术,称为namespace,也即每个namespace中的应用看到的是不同的IP地址,用户空间,进程号等。另一种是用起来是隔离的,称为cgroup,也即明明整台机器有很多的CPU,内存,而一个应用只能用其中的一部分。
有了这两项技术,集装箱的铁盒子我们是焊好了,接下来是决定往里面放什么的时候了。最简单粗暴的方法,就是将上面列表中所有的都放到集装箱里面。但是这样太大了,因为虚拟机的镜像就是这样的,动辄几十G,如果你安装一个干干静静的ubuntu操作系统,什么都不装,就很大了。这其实相当于把船也放到了集装箱里面,答案当然是NO.
所以撇下第一项操作系统,剩下的所有的加起来,也就几百M,就轻便多了。所以一台服务器上的容器是共享操作系统内核的,容器在不同机器之间的迁移不带内核,这也是很多人声称容器是轻量级的虚拟机的原因。轻不白轻,自然隔离性就差了,一个集装箱把船压漏水了,所有的集装箱一起沉。
另一个需要撇下的就是随着应用的运行而产生并保存在本地的数据,多以文件的形式存在,例如数据库文件,文本文件。这些文件会随着应用的运行,越来越大,如果这些数据也放在容器里面,会让容器变得很大,影响容器在不同环境的迁移。而且这些数据在开发,测试,线上环境之间的迁移是没有意义的,生产环境不可能用测试环境的文件,所以往往这些数据也是保存在容器外面的存储设备上。也是为什么人们称容器是无状态的。
总而言之,容器是轻量级的,隔离差的,适用于无状态的,基于镜像标准实现跨主机,跨环境的随意迁移。
有了容器,使得PaaS层对于用户自身应用的自动部署变得快速而优雅。容器快,快在了两方面, 第一是虚拟机启动的时候要先启动操作系统,容器不用启动操作系统,因为是共享内核的。第二是虚拟机启动后使用脚本安装应用,容器不用安装应用,因为已经打包在镜像里面了。所以最终虚拟机的启动是分钟级别,而容器的启动是秒级。
因为容器的启动快,人们往往不会创建一个个小的虚拟机来刚刚部署应用,因为这样太费时间了,而是创建一个大的虚拟机,然后在大的虚拟机里面再划分容器,而不同的用户不共享大的虚拟机,可以实现操作系统内核的隔离。
容器的粒度更加细,管理起来更难管,甚至是手动操作难以应对的。所以容器层面的管理平台是一个新的挑战,关键字就是自动化 。
容器管理平台
当前火热的容器管理平台有三大流派:
一个是Kubernetes,出自Borg,Borg是Google数据中心的容器管理平台。Kubernetes生态活跃,热度高。
一个是Mesos,我们称为乔峰型。Mesos的调度功能独有的,Mesos管理过Tweeter的容器集群。Mesos社区还是以Mesosphere为主导。社区热度不足。
一个是Swarm,Swarm是Docker家族的集群管理软件 ,Docker可以说称为容器的事实标准,但是Swarm的集群管理能力却有所不足,好在Swarm借鉴了很多前面的集群管理思想,也在逐渐的成熟中。
计算虚拟化
CPU虚拟化 (二进制翻译):如何模拟CPU指令 (所有敏感指令),如何让多个VM共享CPU。
解决方案:硬件–>VMM(虚拟机监视程序)–>Guest os(虚拟机操作系统)–>app
全虚:将所有指令都收集到虚拟化层进行处理
半虚:设计理念是将16条指令,由VMM(虚拟化层)移向Guest OS(虚拟机操作系统)自身 通过主动的方式由Guest OS去处理这些指令,而不是被移交给VMM做处理。
硬虚(硬件辅助虚拟化):Guest OS执行到特殊指令可以直接下达到计算机系统硬件去处理,而不需要通过VMM去处理
内存虚拟化
概念: 把物理机的真实物理内存统一管理,包装成多个虚拟机的内存给若干虚拟机使用
Native操作系统对内存的认识与管理达成以下两点认识:内存都是从物理地址0开始的,内存都是连续的。 这也是内存虚拟化需要解决两个的问题。
解决:KVM(基于内核的虚拟机)是一种内建于Linux中的开源虚拟化技术,可将Linux转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境。
虚拟机的虚拟地址到物理机的物理地址的转换:GVA—>GPA—>HVA—>HPA。
IO虚拟化
I/O设备是可对数据进行输入输出的如:磁盘、网卡 I/o虚拟化分为全虚、半虚、I/o透传
全虚:VMM为虚拟机直接模拟出一个与真实设备相似的io设备
半虚:建议一个特权级别的虚拟机,Dom0:安装原生驱动和后端驱动;普通虚拟机(DomU):安装前端驱动
io透传:直接将原生驱动安装给VM使用
KVM技术:
基于内核的虚拟机,linux内核模块。II型虚拟化
任意一装有linux操作系统的虚拟机,安装KVM模块之后即变成了Hypervisor
网络虚拟化
网络的基本概念:
南北流量:流量经过路由。东西流量:流量不经过路由。
ip互联网协议地址,为计算机网络中主机通信设计的。
mac,物理地址,硬件地址,用来确定网络设备在网络中的位置。
vlan:虚拟局域网,在逻辑上将一个物理的局域网划分为多个逻辑设备的广播域的技术
作用:限制广播域、增加安全性,提高网络的健壮性,灵活
vlan:端口
Access:仅允许一个vlan id通过本接口,该vlan id与本接口的id相同
Trunk:允许多个id通过
分布式虚拟交换机在功能上类似于普通的二层交换机。 其中一端与VM的虚拟端口相连,中间是一条虚拟的链路。 另外一端则通过上行链路与主机上的物理网络适配器相连,再与物理交换机相连。 从而连接到各个主机和虚拟机,实现网络互通。
存储虚拟化
常见的物理磁盘类型:机械硬盘HDD,固态硬盘SSD。
集中式存储(RAID):
RAID机制(冗余磁盘阵列),高效(多块磁盘并行读写),安全(奇偶校验和热备技术)。
常用的RAID类型:
RAID0(条带化):多块硬盘逻辑成一块硬盘用(不具备冗余功能)
RAID1(镜像):多块硬盘逻辑成一块硬盘用
RAID5(独立的数据磁盘与分布式校验块):最少需要三块硬盘
RAID6:最少需要4块硬盘
集中式存储类型
块存储:块存储指的是块设备,一切以磁盘形式存在的存储都是块设备,即块存储。块存储强调的是裸磁盘(所有以磁盘形式提供给主机的访问的存储就是块存储)。
文件存储:通俗的理解“块存储+文件系统”打包后,对外提供存储服务。
对象存储:对象存储通俗的说就是基于对象的存储,对象在一个层结构中不会再有层级结构。而文件存储依旧保持传统的文件目录结构层级,当文件层级太深,就会降低速率。
集中式存储按照技术架构分为SAN、NAS
分布式存储
概念: 分布式存储的资源来自于各个主机(服务器),然后将资源整合和分布式存储池,再为各个主机所用。
问题: 分布式存储为什么不用RAID机制
为了保证数据的高可用性和安全性,集中式存储使用的是RAID技术,RAID可以通过硬件和软件的方式来实现,无论是软RAID或者硬RAID,所有的硬盘都需要在一个服务器内 (硬RAID需要统一RAID卡,软RAID需要统一操作系统)。
由于分布式存储的硬盘分布在不同的服务器上,所以无法再使用RAID机制 。因此,分布式存储是通过副本机制来实现数据的高可靠性的。副本机制是指将数据复制成多份一模一样的内容,并分别保存在不同的服务器上,当某台服务器出现故障后,数据并不会丢失。
参考:1,
云计算与分布式计算的区别
云计算(Cloud Computing)是分布式计算的一种;云计算在早期,就是简单的分布式计算,进行任务分发并对计算结果进行合并;当前的云计算已经不单单是一种分布式计算,而是分布式计算、效用计算、负载均衡、并行计算、网络存储、热备份冗余和虚拟化等计算机技术混合演进并跃升的结果
云计算属于分布式计算。还有一个网格计算也属于分布式计算,它们之间的一个重要区别在于资源调度模式。云计算采用集群来存储和管理数据资源,运行的任务以数据为中心。即调度计算任务到数据存储节点运行。而网格计算则以计算为中心。云计算则进一步将硬件资源虚拟化,活用虚拟机技术,对失败任务重新执行,而不必重启任务。
云计算的分布式存储
如何实现一个分布式锁
一, 基于数据库实现分布式锁
1.悲观锁
利用select … where … for update 排他锁
注意: 其他附加功能与实现一基本一致,这里需要注意的是“where name=lock ”,name字段必须要走索引,否则会锁表。有些情况下,比如表不大,mysql优化器会不走这个索引,导致锁表问题。
2.乐观锁
所谓乐观锁与前边最大区别在于基于CAS思想,是不具有互斥性,不会产生锁等待而消耗资源,操作过程中认为不存在并发冲突,只有update version失败后才能觉察到。我们的抢购、秒杀就是用了这种实现以防止超卖。
通过增加递增的版本号字段实现乐观锁
基于缓存(Redis等)实现分布式锁
1.使用命令介绍:
(1)SETNX,SETNX key val:当且仅当key不存在时,set一个key为val的字符串,返回1;若key存在,则什么都不做,返回0。
(2)expire,expire key timeout:为key设置一个超时时间,单位为second,超过这个时间锁会自动释放,避免死锁。
(3)delete,delete key:删除key
2.实现
(1)获取锁的时候,使用setnx加锁,并使用expire命令为锁添加一个超时时间,超过该时间则自动释放锁,锁的value值为一个随机生成的UUID,通过此在释放锁的时候进行判断。
(2)获取锁的时候还设置一个获取的超时时间,若超过这个时间则放弃获取锁。
(3)释放锁的时候,通过UUID判断是不是该锁,若是该锁,则执行delete进行锁释放。
基于Zookeeper实现分布式锁
ZooKeeper是一个为分布式应用提供一致性服务的开源组件,它内部是一个分层的文件系统目录树结构,规定同一个目录下只能有一个唯一文件名。基于ZooKeeper实现分布式锁的步骤如下:
(1)创建一个目录mylock;
(2)线程A想获取锁就在mylock目录下创建临时顺序节点;
(3)获取mylock目录下所有的子节点,然后获取比自己小的兄弟节点,如果不存在,则说明当前线程顺序号最小,获得锁;
(4)线程B获取所有节点,判断自己不是最小节点,设置监听比自己次小的节点;
(5)线程A处理完,删除自己的节点,线程B监听到变更事件,判断自己是不是最小的节点,如果是则获得锁。
对比
数据库分布式锁实现
缺点:
1.db操作性能较差,并且有锁表的风险
2.非阻塞操作失败后,需要轮询,占用cpu资源;
3.长时间不commit或者长时间轮询,可能会占用较多连接资源
Redis(缓存)分布式锁实现
缺点:
1.锁删除失败 过期时间不好控制
2.非阻塞,操作失败后,需要轮询,占用cpu资源;
ZK分布式锁实现
缺点:性能不如redis实现,主要原因是写操作(获取锁释放锁)都需要在Leader上执行,然后同步到follower。
总之:ZooKeeper有较好的性能和可靠性。
从理解的难易程度角度(从低到高)数据库 > 缓存 > Zookeeper
从实现的复杂性角度(从低到高)Zookeeper >= 缓存 > 数据库
从性能角度(从高到低)缓存 > Zookeeper >= 数据库
从可靠性角度(从高到低)Zookeeper > 缓存 > 数据库
容器是一个标准的软件单元,它打包代码及其所有依赖项,以便应用程序从一个计算环境快速可靠地迁移到另一个计算环境。Docker 容器镜像是一个轻量级的、独立的、可执行的软件包,包括运行应用程序所需的一切:如代码、运行环境、系统工具、系统库和设置。Docker是容器的引擎,通过Docker引擎就可以实现容器的功能。
容器技术最重要的价值是:为在不同主机上运行的应用程序服务提供一个轻便、一致的格式。容器格式的标准化可加快交付体验,允许用户方便地对工作负载进行迁移,避免局限于单一的平台提供商。利用容器可以短时间内部署成百上千个应用,保证用户应用快速上线;容器可以简化配置过程,用户应用的运行环境可以直接打包到容器内,使用时可以直接启动。
如上图所示,左图为容器技术架构图,右图为虚拟化技术架构图。两者相比,容器与虚拟机最大的不同是容器里不再安装操作系统,容器的本质是一种操作系统级别的虚拟化,启动一个应用容器其实就是启动一个进程,节省了大量操作系统所占资源,同样一台计算机就可以服务于更多租户。容器技术对操作系统的资源进行再次抽象,而并非对整个物理机资源进行虚拟化。容器和虚拟机一起使用为部署和管理应用程序提供了极大的灵活性。
计算机发展史、概念题
Q:你认为云计算到底解决了软件生产中的什么问题?
节约成本、外包扩大业务、网站防攻击、数据备份等等
Q:请解释云计算中的公有云、私有云和混合云,并说明它们的适用场景。
公有云是由第三方云服务提供商(如亚马逊AWS、微软Azure、谷歌云等)提供和管理的云基础设施和服务。这些基础设施和服务对外公开,客户可以按需使用并按照使用量付费。
私有云是指由单个组织或企业内部搭建和管理的云基础设施和服务。这些基础设施可以部署在自己的数据中心或由第三方托管,但对外部通常不公开。
混合云是指同时使用公有云和私有云的部署模型。在混合云中,组织可以将一些工作负载部署在公有云上,而将另一些工作负载部署在私有云上,并且这两者之间可以进行互操作。
Q:讨论云计算的五个基本特征。
资源收缩,快速部署,资源抽象,按用量计费,宽带访问
Q:请简述云计算中有哪些不同的层,并介绍各自的功能。
a) Saas:软件及服务,它让用户可以直接访问云应用程序,不必再系统上安装任何东西。
b) Iaas:基础设施即服务,它从硬件(比如内存和处理器速度等)等层面提供了基础设施
c) Paas:平台及服务,它为开发人员提供云应用程序平台。
Q:对云计算有什么了解?
云计算是一种基于互联网的计算方式,通过共享的资源池,提供可按需获取、可快速提供和可测量的计算服务。
它主要由三个部分组成:云存储、云计算和云服务。
云计算通过虚拟化技术,将硬件资源(如处理器、存储器、网络)进行抽象和汇总,形成资源池,通过软件技术对资源进行分配和管理,从而提供计算服务。
云计算可以根据需要快速提供计算、存储、网络等各种服务,可以节省企业的资金和时间成本,提高资源利用率。 云计算有多种服务模式,包括基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。
不同的服务模式适用于不同的业务需求。同时,云计算还有多种部署方式,包括公共云、私有云和混合云。企业可以根据自己的需求选择适合的部署方式。
Q:云计算服务中涉及的数据库服务通常包括以下几个方面?
+ 数据库即服务(DBaaS):DBaaS是一种将数据库作为云服务提供的模式,用户无需购买、安装和维护数据库软件和硬件设备,而是通过云服务提供商提供的界面或API来管理和使用数据库。
+ 数据库实例,用户可以在其中部署和运行自己的数据库系统。这些数据库实例通常包括预配置的硬件资源(如CPU、内存、存储空间)和数据库软件环境,用户只需根据自己的需求选择合适的实例类型和规格即可快速部署自己的数据库系统。
云计算核心技术
Q:云计算中的虚拟化技术是如何实现资源的隔离和共享的?
通过创建虚拟的计算资源(如虚拟机、容器等)来实现资源的隔离和共享。
资源隔离是指将不同用户或应用程序的计算资源彼此隔离,以确保它们在同一物理基础设施上运行时不会相互干扰。
+ 虚拟化层:在物理服务器上运行虚拟化软件,该软件负责创建和管理虚拟资源。虚拟化层将物理服务器的计算、存储和网络资源抽象化,以便多个虚拟实例可以共享这些资源。
+ 虚拟机(VM)技术:通过虚拟机管理器(如VMware、Hyper-V、KVM等),物理服务器可以被划分为多个虚拟机,每个虚拟机都运行着独立的操作系统和应用程序。这样,不同用户或应用程序的计算资源可以被隔离开来,就好像它们运行在不同的物理服务器上一样。
+ 容器技术:容器技术(如Docker、Kubernetes等)提供了一种更轻量级的虚拟化方式,容器可以在同一操作系统内共享内核,并且具有更快的启动时间和更小的资源开销。通过容器技术,不同应用程序的资源可以被隔离开来,同时共享相同的操作系统内核。
Q:请解释云计算中的弹性伸缩是什么,以及为什么弹性伸缩对云计算环境具有重要意义?
+ 云计算中的弹性伸缩是指根据实际需求动态地增加或减少计算资源(如服务器、存储和网络资源)的能力。这意味着在云平台上,系统能够根据负载、用户需求或其他指标来自动地增加或减少计算资源,以保持系统的性能和可用性。
Q:容器和虚拟机的区别?
+ 容器与虚拟机最大的不同是容器里不再安装操作系统,容器的本质是一种操作系统级别的虚拟化,启动一个应用容器其实就是启动一个进程,节省了大量操作系统所占资源。
Q:vm虚拟机为什么效率高?
对比其他虚拟技术,内核也有做虚拟化。
对比物理机,资源共享,资源隔离,资源管理相关的能力。
参考:1,2,3,4,5,6,7,8-git,9-git,10-内核,linux-运维
系统原理
Q:怎么看一个文件被哪些进程占用,除了命令,找到所有日志,自己统计。
lsof 文件名 (实现原理)
1、/proc 文件系统是 Linux 内核提供的一个虚拟文件系统,包含了关于系统运行状态的信息。
2、每个正在运行的进程在/proc/[PID]/fd目录下都有一个符号链接列表,这些链接指向该进程打开的文件描述符
3、 对于每个文件描述符,lsof会读取符号链接指向的真实文件路径,并获取该文件的相关信息,如文件类型、文件大小等
4、lsof根据文件描述符获取到的文件信息,查找相应的进程信息,包括进程ID、进程名称、用户ID等。
5、lsof将获取到的文件信息和进程信息以表格形式输出,显示文件被哪些进程占用。。
Q:Linux查看某个端口是否被占用?
sudo netstat -tuln | grep :80
sudo ss -tuln | grep :80
这将显示所有正在监听端口的服务,并且可以看到端口 80 是否被占用。
Q:Linux启动过程,从bios开始?
第一步:开机自检,加载 BIOS
第二步:读取 MBR(硬盘的主引导记录,MBR是第一个可开机设备的第一个扇区的引导分区块)
第三步:Boot Loader grub 引导菜单(里面的ext4驱动,可以识别/boot分区里的内容)
第四步:加载 kernel 内核 (根据 grub 设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。)
第五步:init 进程依据 inittab 文件夹来设定运行级别(内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取 /etc/inittab 文件,并依据此文件来进行初始化工作)
第六步:init 进程执行 rc.sysinit
第七步:启动内核模块
第八步:执行不同运行级别的脚本程序
第九步:执行 /etc/rc.d/rc.local
第十步:执行 /bin/login 程序,启动 mingetty,进入登录状态
Q:如何查看一个服务是否开机启动?
方法1: 到多用户模式对应的文件夹下查看是否有这个服务的名字
Q:运行级别(centos6里概念)
在centos6里有哪些运行级别?
runlevel 可以查看当前运行级别
0级:关机
1级:单用户(找回丢失密码)
2级:多用户无网络,不能使用NFS功能
3级:多用户有网络(multi-user),最常用的级别,CLI字符界面
(会定义哪些程序在字符界面下开机启动 -->开启的程序少–>消耗的资源少 -->最小化安装)
4级:保留,目前Linux暂无使用
5级:图像界面,GUI界面
(图形界面 -->会定义哪些程序在图形界面下开机启动 -->开启的程序多–>消耗资源多 -->带GUI服务器,linux里启动图形界面是启动GNOME 和KDE)
6级:重启
在centos7/8里该文件已经不再使用了
Q:内核子系统有哪些?操作系统的主要功能?
内核子系统包括文件系统、网络、内存管理等,操作系统的主要功能是资源管理和任务调度。
Q:系统的运行级别,默认的运行级别是?
系统的运行级别,默认的运行级别是3。
Q:虚拟化,完全虚拟化,半虚拟化,docker?
虚拟化有完全虚拟化、半虚拟化和容器虚拟化(如Docker)。
Q:Docker常用命令:,例如开启所有容器,删除所有镜像,复制文件到容器内?
`docker start $(docker ps -aq)`(开启所有容器)、`docker rmi $(docker images -q)`(删除所有镜像)、`docker cp`(复制文件到容器内)。
Q:解释一下什么是分布式部署,负载均衡,反向代理?
分布式部署是将应用程序部署在多台服务器上,负载均衡是将请求分配到多个服务器上,反向代理是代理服务器接收客户端请求并将其转发到后端服务器。
Q:对云原生的理解?
云原生是一种软件开发和部署方法,利用云计算和容器化技术,实现高度自动化、弹性扩展和持续交付。
常用命令
Q:常见的进程管理命令有哪些?
top ps systemctl nice service
Q:关闭Linux系统不重启
用 `shutdown -h now` 命令。
Q:数据库备份
使用 `mysqldump`。
Q:创建和解压压缩文件
使用 `tar` 命令。
Q:常见的端口、
Web服务使用80和443端口,数据库服务常用3306端口。
Q:常见的Linux日志文件和路径:
`/var/log/messages`、`/var/log/syslog`。
Q:常见的进程管理命令:
`ps`、`top`、`kill`。
Q:linux查看某个端口是否开启
a. 使用lsof -i:端口号命令行
b.使用netstat -aptn命令行,查看所有开启的端口号
其他补充:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。