虚拟化基础概念

1. 虚拟化基础概念

01. 什么是虚拟化?

虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率

虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。

02. 为什么要用虚拟化?

提高计算机资源的利用率和程序运行环境的安全隔离,还可以有效限制程序的资源占用

优势:

1.降低运营成本
  服务器虚拟化降低了IT基础设施的运营成本,令系统管理员摆脱了繁重的物理服务器、OS、中间件及兼容性的管理工作,减少人工干预频率,使管理更加强大、便捷。
  
2.提高应用兼容性
  服务器虚拟化提供的封装性和隔离性使大量应用独立运行于各种环境中,管理人员不需频繁根据底层环境调整应用,只需构建一个应用版本并将其发布到虚拟化后的不同类型平台上即可。
  
3.加速应用部署
  采用服务器虚拟化技术只需输入激活配置参数、拷贝虚拟机、启动虚拟机、激活虚拟机即可完成部署,大大缩短了部署时间,免除人工干预,降低了部署成本。
  
4.提高服务可用性
  用户可以方便地备份虚拟机,在进行虚拟机动态迁移后,可以方便的恢复备份,或者在其他物理机上运行备份,大大提高了服务的可用性。
  
5.提升资源利用率
  通过服务器虚拟化的整合,提高了CPU、内存、存储、网络等设备的利用率,同时保证原有服务的可用性,使其安全性及性能不受影响。
  
6.动态调度资源
  在服务器虚拟化技术中,数据中心从传统的单一服务器变成了统一的资源池,用户可以即时地调整虚拟机资源,同时数据中心管理程序和数据中心管理员可以灵活根据虚拟机内部资源使用情况灵活分配调整给虚拟机的资源。
  
7.降低能源消耗
  通过减少运行的物理服务器数量,减少CPU以外各单元的耗电量,达到节能减排的目的。

03. 虚拟化在企业中的应用场景?

场景1:多版本操作系统共存,小公司经常会出现的一种比较尴尬的问题,只有一台服务器,非要同时运行windows和Linux,只有虚拟化才能完美解决.

场景2:机房迁移,没有虚拟化之前,迁移非常痛苦,物理机搬迁中途损伤,新机房很难复原旧环境,物理机老化可能再也开不了机,这些都是问题,有了虚拟化之后,搬迁变得简单,只需拷贝虚拟机的文件即可

场景3:相同业务部署,在没有虚拟化之前,部署业务,每次都是从安装系统开始,一步一步安装软件,效率非常低!有了虚拟化,只需克隆模板机即可

场景4:软件发布体验,有的软件安装特别繁琐,导致很多普通用户都无法安装成功,为了让这部分用户能体验到软件的功能,可以制作一个虚拟机模板,让用户直接使用体验,例如zabbix就有现成的虚拟机模板

04. 虚拟化软件介绍

Xen

  Xen是一个开放源代码虚拟机监视器,由XenProject开发。它打算在单个计算机上运行多达128个有完全功能的操作系统。    在旧(无虚拟硬件)的处理器上执行Xen,操作系统必须进行显式地修改("移植")以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。    软件纯模拟全虚拟化软件,特别慢!

QEMU

  QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的模拟处理器的自由软件。它与Bochs(Bochs是一个x86硬件平台的开源模拟器。它可以模拟各种硬件的配置。),PearPC(实现PC机上安装Mac OS)近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性。经由KVM(早期为kqemu加速器,现在kqemu已被KVM取代)这个开源的加速器,QEMU能模拟至接近真实电脑的速度。QEMU有两种主要运作模式:  User mode模拟模式,亦即是用户模式。

  QEMU能引导那些为不同中央处理器编译的Linux程序。而Wine(运行 Windows 应用的兼容层。)及Dosemu(DOS模拟器)是其主要目标。  System mode模拟模式,亦即是系统模式。

  QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为系统源代码进行测试及除错工作变得容易。其亦能用来在一部主机上模拟数部不同虚拟电脑。    性能特别好,但是需要使用专门修改之后的内核。  

小结:

xen  纯软件模拟,特别慢
qemu   需要一个专门的内核,性能特别好
kvm   基于内核的  2.6.20以上的版本内核
kvm的优点:
kvm是一种年轻的虚拟化技术,在出生的时候就吸收了其他虚拟化技术的优点,而且架构简单,没有历史兼容性的包袱,性能表现优异,使用越来越广

05. Kvm介绍

1.KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机)。

2.是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。

3.它包含一个为处理器提供底层虚拟化,可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。

4.KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。

5.KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)同时KVM还能够使用ksm技术帮助宿主服务器节约内存。

6.在主流的Linux内核,如2.6.20以上的内核均已包含了KVM核心。

Kvm的优点:KVM是一种年轻的虚拟化技术,在出生的时候就吸收了其他虚拟化技术的优点,而且架构简单,没有历史兼容性的包袱,性能表现优异,使用越来越广!

03. 安装VNC软件(远程桌面管理工具)

远程链接地址:10.0.0.161:5900

#下载vnc软件方法,tightvnc官网:http://www.tightvnc.com

? VNC软件,用于VNC(Virtual Network Computing),为一种使用RFB协议的显示屏画面分享及远程操作软件。此软件借由网络,可发送键盘与鼠标的动作及即时的显示屏画面。 VNC与操作系统无关,因此可跨平台使用,例如可用Windows连接到某Linux的电脑,反之亦同。甚至在没有安装客户端程序的电脑中,只要有支持JAVA的浏览器,也可使用。

2. 安装部署Kvm

环境安装

1.添加100G硬盘
2.重启生效
3.初始化
[[email protected] ~]# mkfs.xfs /dev/sdb
meta-data=/dev/sdb               isize=512    agcount=4, agsize=6553600 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=26214400, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=12800, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
4.挂载
mount /dev/sdb /opt

01. 如果采用的是虚拟机安装,需要开启虚拟机的虚拟化技术

02. Kvm虚拟化管理软件的安装

[[email protected] ~]# yum install  -y  libvirt  virt-install  qemu-kvm  -y

libvirt         #虚拟化的管理平台  kvm  qemu xen

virt-install    #安装克隆虚拟机

qemu-kvm    qemu-img    #磁盘管理,底层平台

#查看是否支持kvm
lsmod|grep -i kvm
#启动

[[email protected] ~]# systemctl  start  libvirtd

#安装虚拟机

 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos7.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

 --virt-type kvm        #虚拟化的类型  (qemu效率慢)

 --os-type=linux        #系统类型

 --os-variant rhel7     #客户机的安装系统,centos-7系列

 --name centos7         #虚拟机的名称 

 --memory 1024          #虚拟机的内存

 --vcpus 1              #CPU的核心

 --disk /opt/centos7.raw,format=raw,size=10     #磁盘 ,磁盘的格式  raw 性能好,不支持快照                                                   qcow2,支持快照,默认G为大小

 --cdrom /opt/CentOS-7-x86_64-DVD-1810.iso      #镜像位置 

 --network network=default      #网络

 --graphics vnc,listen=0.0.0.0      #显示器  vnc

 --noautoconsole                #禁止自动consle连接控制台

vnc安装出问题处理方法(版本7.5有坑,不建议使用):

1.操作如下步骤
virsh list --all
virsh destroy centos7
virsh undefine centos7
rm -fr /opt/centos7.raw
2.调整内存
 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos7.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
3.重新安装

#不是默认盘手动创建盘
qemu-img create /opt/centos7.raw  20G

安装需要配置的几个点

kvm主机管理

[[email protected] opt]# virsh  list --all             #显示所有的主机
 Id    Name                           State
----------------------------------------------------
 4     centos7                        running

[[email protected] opt]# virsh  list                   #只显示开机状态的主机
 Id    Name                           State
----------------------------------------------------
 4     centos7                        running

#查看主机的配置信息
[[email protected] opt]# virsh   dominfo   centos7
Id:             4
Name:           centos7
UUID:           633eccfd-afb3-408e-a1c5-cc501d442663
OS Type:        hvm
State:          running
CPU(s):         1
CPU time:       24.4s
Max memory:     1048576 KiB
Used memory:    1048576 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: none
Security DOI:   0

#关机  

[[email protected] opt]# virsh  shutdown  centos7
Domain centos7 is being shutdown

#拔掉电源进行关机
[[email protected] opt]# virsh  destroy   centos7
Domain centos7 destroyed

#启动

[[email protected] opt]# virsh  start  centos7
Domain centos7 started

[[email protected] opt]# virsh  list --all
 Id    Name                           State
----------------------------------------------------
 5     centos7                        running

#重启
[[email protected] opt]# virsh  reboot  centos7 #系统正常是可以用,否则强制关机 

#主机的磁盘  

[[email protected] opt]# ll
total 5924408
-rw------- 1 root root 10737418240 Dec  3 01:33 centos7.raw

#配置文件 

[[email protected] opt]# ll  /etc/libvirt/qemu/
total 4
-rw------- 1 root root 4077 Dec  3 00:58 centos7.xml

#直接修改配置文件
[[email protected] opt]# virsh  edit  centos7 

#查看运行中的主机的对应的端口号

[[email protected] opt]# virsh  vncdisplay  centos7
:0

#挂起虚拟主机

[[email protected] opt]# virsh  suspend   centos7
Domain centos7 suspended

 #恢复虚拟主机

[[email protected] opt]# virsh  resume   centos7
Domain centos7 resumed

#关机
[[email protected] opt]# virsh   shutdown   qls
Domain qls is being shutdown

#修改名称(低版本不支持centos7.3开始)
[[email protected] opt]# virsh domrename   qls  centos7
Domain successfully renamed

#修改配置文件
[[email protected] opt]# virsh   edit  centos7

<source file='/opt/centos7.raw'/>       #修改磁盘名称

#修改磁盘名称
[[email protected] opt]# mv  qls.raw  centos7.raw

#启动
[[email protected] opt]# virsh  start  centos7
Domain centos7 started

[[email protected] opt]# virsh  list  --all
 Id    Name                           State
----------------------------------------------------
 9     centos7                        running

#调整内存 (调小)
[[email protected] opt]# virsh  setmem   centos7   524288

[[email protected] opt]# virsh   dominfo   centos7  |grep  -i mem
Max memory:     1048576 KiB
Used memory:    524288 KiB

#关机
[[email protected] opt]# virsh  shutdown  centos7
Domain centos7 is being shutdown

#修改配置文件,带有语法检查
[[email protected] opt]# virsh  edit centos7       #修改内存
<domain type='kvm'>
  <name>centos7</name>
  <uuid>633eccfd-afb3-408e-a1c5-cc501d442663</uuid>
  <memory unit='KiB'>2097152</memory>                   #最大限制
  <currentMemory unit='KiB'>2097152</currentMemory>     #允许使用
  <vcpu placement='static'>1</vcpu>                     #修改CPU核心数

[[email protected] opt]# virsh  start  centos7         #启动
Domain centos7 started

[[email protected] opt]# virsh  dominfo   centos7  |grep -i  mem       #检查
Max memory:     2097152 KiB
Used memory:    2097152 KiB

导出,删除,恢复配置文件

\#导出主机配置信息

[[email protected] /opt]# virsh dumpxml centos7 > centos7-bak.xml

[[email protected] /opt]# ll
total 13544120
-rw-r--r-- 1 root root 5243 Dec 1 16:10 centos7-bak.xml

\#删除主机信息,只有关机状态下才能关机

[[email protected] /opt]# virsh undefine centos7
Domain centos7 has been undefined

\#导入主机配置信息
[[email protected] /opt]# virsh define centos7-bak.xml
Domain centos7 defined from centos7-bak.xml

注意:

\#开机状态下,删除主机信息,删除了配置文件,不会删除磁盘文件

[[email protected] /opt]# virsh undefine centos7
Domain centos7 has been undefined

关机,就生效
先备份
\#导出主机配置信息

[[email protected] /opt]# virsh dumpxml centos7 > centos7-bak.xml

\#导入主机配置信息
[[email protected] /opt]# virsh define centos7-bak.xml
Domain centos7 defined from centos7-bak.xml

补充:

virsh日志管理和配置

参数 参数说明
基础操作
list 查看虚拟机列表,列出域
start 启动虚拟机,开始一个(以前定义的)非活跃的域
shutdown 关闭虚拟机,关闭一个域
destroy(危险) 强制关闭虚拟机,销毁(停止)域
dominfo 显示主机基本信息
vncdisplay 查询正在运行状态下的虚拟机vnc端口号
setmem 调整主机内存大小,只能调小
edit 编辑配置文件
console 命令行console进行登录
配置管理操作
dumpxml 导出主机配置信息
undefine 删除主机
define 导入主机配置
domrename 对虚拟机进行重命名(低版本的系统不支持)
挂起与恢复
suspend 挂起虚拟机
resume 恢复虚拟机
自启动管理
autostart 虚拟机开机启动
autostart --disable 取消虚拟机开机启动
快照管理
snapshot-create 创建快照
snapshot-list 查看快照列表
snapshot-info 显示快照信息
snapshot-revert 还原快照
snapshot-delete 删除快照

kvm虚拟主机的相关文件

\#主机的镜像文件
[[email protected] /opt]# ll
-rw------- 1 root root 10737418240 2019-07-22 20:19 centos7.raw     

\#主机的配置文件
[[email protected] /opt]# ll /etc/libvirt/qemu/centos7.xml
-rw------- 1 root root 4078 2019-07-22 21:01 /etc/libvirt/qemu/centos7.xml

#修改虚拟主机配置文件的方法,使用下面命令修改可以对文件进行语法校验

[[email protected] /opt]# virsh edit centos7

\#配置管理操作

[[email protected] /opt]# virsh list --all       #运行状态
Id Name State----------------------------------------------------1 centos7 running

\#导出主机配置信息

[[email protected] /opt]# virsh dumpxml centos7 > centos7-bak.xml

[[email protected] /opt]# ll
total 13544120
-rw-r--r-- 1 root root 5243 Dec 1 16:10 centos7-bak.xml

\#关机状态

[[email protected] /opt]# virsh shutdown centos7
Domain centos7 is being shutdown

\#导出主机配置信息,关机状态下的要比开机状态下的省资源

[[email protected] /opt]# virsh dumpxml centos7 > centos7-back.xml
[[email protected] /opt]# ll
total 13544124-rw-r--r-- 1 root root 3951 Dec 1 16:12 centos7-back.xml-rw-r--r-- 1 root root 5243 Dec 1 16:10 centos7-bak.xml

\#删除主机信息,只有关机状态下才能关机

[[email protected] /opt]# virsh undefine centos7
Domain centos7 has been undefined

\#发现主机的配置文件已经不存在了

[[email protected] /opt]# ll /etc/libvirt/qemu
total 0drwx------ 3 root root 42 Dec 1 14:10 networks

\#检查列表也是没有

[[email protected] /opt]# virsh list --all
Id Name State----------------------------------------------------

\#导入主机配置信息
[[email protected] /opt]# virsh define centos7-bak.xml
Domain centos7 defined from centos7-bak.xml

\#配置文件已经回来了

[[email protected] /opt]# ll /etc/libvirt/qemu
total 8-rw------- 1 root root 4513 Dec 1 16:24 centos7.xml

\#检查列表

[[email protected] /opt]# virsh list --all
Id Name State----------------------------------------------------- centos7 shut off

\#主机重命名,只能修改关机状态下的主机,临时修改

[[email protected] /opt]# virsh domrename centos7 qls
Domain successfully renamed

[[email protected] /opt]# virsh list --all
Id Name State----------------------------------------------------- qls shut off

\#配置文件名称已经发生改变

[[email protected] /opt]# ll /etc/libvirt/qemu
total 8drwx------ 3 root root 42 Dec 1 14:10 networks
-rw------- 1 root root 4505 Dec 1 16:26 qls.xml

\#磁盘名称没有改变,可以通过修改配置文件实现

[[email protected] /opt]# ll
total 13544124
-rw-r--r-- 1 root root 3951 Dec 1 16:12 centos7-back.xml
-rw-r--r-- 1 root root 5243 Dec 1 16:10 centos7-bak.xml
-rw------- 1 qemu qemu 10737418240 Dec 1 16:23 centos7.raw

\#挂起与恢复(时间会有变动)
virsh进去
命令可以补全
exit退出

[[email protected] ~]# virsh suspend centos7    #挂起,挂起之后主机无法进行任何操作Domain centos7 suspended

[[email protected] ~]# virsh resume centos7         #恢复Domain centos7 resumed

**03. 安装一个CentOS6的系统的虚拟主机**

\#上传一个CenOS6系统的镜像到/opt目录下
[[email protected] /opt]# ll
-rw-r--r-- 1 root root 3916431360 2019-07-22 22:03 CentOS-6.8-x86_64-bin-DVD1.iso
-rw------- 1 root root 10737418240 2019-07-22 20:19 centos7.raw
-rw-r--r-- 1 qemu qemu 4588568576 2019-07-22 17:58 CentOS-7-x86_64-DVD-1810.iso

[[email protected] /opt]# virt-install --virt-type kvm --os-type=linux --os-variant rhel6 --name centos6 --memory 1024 --vcpus 1 --disk /opt/centos6.raw,format=raw,size=10 --cdrom /opt/CentOS-6.8-x86_64-bin-DVD1.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

Starting install...Domain installation still in progress. You can reconnect tothe console to complete the installation process.

\#使用TightVNC进行连接,如果centos7是开启的,那么这个的默认端口号是5901

?    进入之后,开始安装CenOS6的系统,正常安装就可以,ip地址设置为自动就可以了。分区时一定要配置swap分区,不配置swap分区,会出现报错的情况,主机起动不来。

**04. Kvm虚拟机console登录**

**CentOS-7.X 版本console登录**

开机自启,取消

#开机启动autostart,前提:systemctl enable libvirtd;取消开机启动autostart --disable

[[email protected] /opt]# virsh autostart centos7

进入控制台

virsh console  centos7
退出
ctrl+]

实现命令行输入(跳板机管理的服务:vnc ip地址一致才可以)

centos7开启censole登录

#连接到kvm虚拟主机
[[email protected] /opt]# ssh [email protected]
[[email protected] ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
[[email protected] ~]# reboot

\#115200n8:能显示虚拟机的启动过程。重启完成后,使用virsh console 连接虚拟机。

[[email protected] /opt]# virsh console centos7
Connected to domain centos7
Escape character is ^]CentOS Linux 7 (Core)Kernel 3.10.0-957.el7.x86_64 on an x86_64

centos7 login: rootPassword:Last login: Tue Jul 23 09:51:50 from gateway[[email protected] ~]#

\#查看终端

[[email protected] ~]# whoroot ttyS0 2019-12-01 17:05

\#注意:退出virsh console连接的方法,使用组合键Ctrl+]即可

centos6开启censole登录

\#开启centos-6的虚拟主机
[[email protected] /opt]# virsh start centos6
Domain centos6 started

[[email protected] /opt]# virsh list --all
Id Name State----------------------------------------------------1 centos7 running2 centos6 running

\#连接到kvm虚拟主机,默认网络是没有启动的,需要手动启动起来

[[email protected] /opt]# ssh [email protected]

\#1.添加ttyS0的许可,允许root登陆
[[email protected] ~]# echo "ttyS0" >> /etc/securetty

\#2.编辑/etc/grub.conf中加入console=ttyS0
[[email protected] ~]# sed -i '/\tkernel/s#.*#& console=ttyS0#g' /boot/grub/grub.conf

\#3.编辑/etc/inittab在最后一行加入内容 S0:12345:respawn:/sbin/agetty ttyS0 115200
[[email protected] ~]# echo 'S0:12345:respawn:/sbin/agetty ttyS0 115200' >>/etc/inittab

\#4.重启虚拟主机
[[email protected] ~]# reboot

\#5.重启完成后,使用virsh console 连接虚拟机。
[[email protected] /opt]# virsh console centos6
Connected to domain centos6Escape character is ^]

CentOS release 6.8 (Final)Kernel 2.6.32-642.el6.x86_64 on an x86_64

centos6 login: rootPassword:Last login: Tue Jul 23 02:01:46 from 192.168.122.1

原文地址:https://www.cnblogs.com/1naonao/p/11992097.html

时间: 2025-01-13 19:34:39

虚拟化基础概念的相关文章

KVM虚拟化之基础概念

KVM 1.1 在认识虚拟化之前,聊聊在业务中,我们想要实现什么? 1.      满足性能前提下,保证业务稳定可靠,其次是安全性 2.      最大程度的平衡调度资源,提高资源的利用率,节省成本 3.      灵活快速,可以针对并发数量对架构实现动态伸缩 4.      扩展灵活的机柜,集群 5.      管理方便,平台化,自动化(puppet;ansible;saltstack;shell;python;) 6.      磁盘IO:硬件是高性能的---HBA,RAID,SAN(光纤,

Windows的基础概念和术语

在windows操作系统的发展历程中,Windows7是一个具有特殊意义的版本.它是目前最为复杂的单机操作系统,无论从代码规模.代码复杂度,到系统适应场景的复杂程度,都超过了以前所有的版本.从某种意义上,Windows7代表了软件工程的一个顶峰--人类可以构造出如此复杂且能稳定工作的软件系统! 1.Windows操作系统的版本 表1.1Windows操作系统的历次发布 产品名称 内部版本号 发布日期 Windows NT 3.1 3.1 1993年7月 Windows NT 3.5 3.5 19

Docker 基础概念科普 和 常用操作介绍

Docker 基础概念 Docker是什么? Docker的思想来自于集装箱,集装箱解决了:在一艘大船上,可以把货物规整的摆放起来.并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响.那么我就不需要专门运送瓷器的船和专门运送化学物品的船了.只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走. 不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,而且很麻烦,还会造成

2019-04-18-NFV基础概念

NFV技术的起源和概念 在移动互联网时代,运营商面临内外困局.就自身而言,采用的流量增长-网络扩容-收入增长的商业模型正在失效,庞大.僵化的电信基础网络,不能够满足用户的丰富需求:就竞争对手而言,互联网企业以天为计的业务迭代时间,能够很好地贴合用户需求,飞速发展的OTT业务,使运营商越来越趋向于管道工的角色. 随着云计算普及和x86服务器性能提高,各大运营商为了避免进一步成为哑管道的尴尬,由全球各大运营商牵头提出网络功能虚拟化技术(Network Function Virtualization,

关系型数据库常用基础概念知识归纳

声明:我的文章都是只挑主要的写,次要细节太多,归纳就没意义了,同时归纳主要是给自己看的, 而且基本都是凭自己的一些记忆和理解即时写的.不一定对和全(但大多是一些需要理解的概念),请各位看管见谅! 数据库设计篇 1.范式 A.1范式,原子性,即列不可分 B.2范式,完全依赖,即有个主键唯一区分 C.3范式,不能传递依赖,即表中不能还有其他表的非主键信息 2.模型 A.概念模型,即ER图等 B.逻辑模型,即建逻辑表 C.物理模型,即生成物理表 事务 1.四大特性, A.原子,要么..要么.. B.隔

分布式学习——基础概念篇

概述 最近这段时间一直在看分布式有关的东西,但是关于分布式自己还是不能很好的理解,所以本文对分布式基础概念进行下学习. 分布式处理 首先先了解一下分布式处理,分布式处理和集中式处理正好是相反的的体系架构,集中传输集中到式处理顾名思义就是将所有的信息都一个统一的信息中心进行处理:分布式处理就是将不同地点的,或具有不同功能的,或拥有不同数据的多台计算机利用通信网络连接起来,让各个计算机各自承担同一个工作任务的不同部分,在控制中心的管理下,同时运行,共同完成同一个工作任务. 提到分布式处理就不能不提到

js基础--javascript基础概念之语法

掌握一门语言 必须先掌握它的语法! javascript 的语法和C.Java.Perl 的语法有些相似.但是比它们更加宽松. javascript 中的一切都是严格区分大小写的.例如变量: demo 和 Demo 两个变量是完全不同的. javascript 标示符,所谓标示符 是指 变量.函数.属性 的名字或函数的参数.标示符的格式是按照以下规则组合的一个或多个字符. 1.第一个字符必须是字母,下划线,或 $ 符号. 2.其他字符可以是字母.下划线.$ . 或数字. 注意 不能把关键字 保留

js基础--javascript基础概念之数组(二)

js基础--javascript基础概念之数组 数组栈方法 数组可以像栈一样.栈是一种先进后出的数据结构,最先添加的数据最后一个出来.栈方法添加数据也称为 推入  移除数据称为 弹出. js为数值栈方法提供了 push()   和  pop() ;  两个方法. push() push() 方法接受参数就是你要添加进入到数组的值.push()  方法会将他们逐一添加到数组的末尾  数组的length属性会跟着更新数据. *push(多个数组元素值) 返回的修改后的数组长度 var array =

js基础--javascript基础概念之数组

js基础--javascript基础概念之数组 在ECMAScript 中 ,数组是很常用的数据类型,js中的数组和其他很多语言的数组有明显的区别.js的数组可以保持任何类型的数值,一个数组中可以保存着多个不同类型的数值.js数组大小(长度)是可以调整的.可以随着数据的添加自动增长数组长度. 创建数组: 一.数组字面量 数组字面量由一对包含数组项的方括号[]表示. var array = [ 'kin', 'cheong', 'change', 'hello', 'haha', 'hi' ];