Linux启动过程

按下电源按钮的直到欢迎页出来之后,linux总共做的事可以分为五步来完成。

1、 BIOS加电自检:

加电自检,检测硬件设备。然后按照cmos上面的顺序来搜索处在活动状态下的可以引导的设备。可以是光驱、软盘、USB等。

2、 加载主引导加载程序(MBR):

主引导程序是一个512字节的映像。包含一点机器码还有一个小的分区。

主引导程序的任务就是查找并且加载处在硬盘分区上的次引导程序。通过分区表查找活动分区,并将处在活动分区的次引导加载程序读取到内存里面运行。

3、 加载次引导记载程序(GRUB)

次引导加载程序只要就是加载linux内核。

上一阶段结束之后次引导加载程序就会在内存里面跑起来。就会出现GRUB图形界面,让用户选择加载什么样的内核。

4、 linux内核映像:

用户选择要加载的内核之后,次引导加载程序(GRUB)就会根据/boot/grub.conf配置文件中所设置的信息,从/boot/所在的分区上读取Linux内核映像,然后把内核映像加载到内存中并把控制权交给Linux内核。

linux内核获得控制权之后开始干自己的事

检测硬件
解压缩自己并安装必要驱动
初始化与文件系统相关的虚拟设备,LVM或RAID
装载根文件系统,挂在根目录下面
完成之后,linux在进程空间里面加载init程序,下面轮到init干活
init进程
init是所有进程的发起者和控制者,所有的进程都由此衍生。

init进程获得控制权之后,它会执行/etc/rc.d/rc.sysinit脚本,根据里面的代码设置环境变量、网络、启动swap、检查并挂载文件系统、执行其他初始化工作。

至此,linux启动完成。

我们稍微总结一下:

首先是BIOS加电自检,之后加载主引导加载程序、次引导加载程序,最后就是linux内核映像,完了把控制权交给init进程,完成初始化工作。

swap分区是什么?

类似windows系统中的虚拟内存,当物理内存不够用的时候,使用swap中的内存。

服务器虚拟化的五大问题

服务器虚拟化解决方案?将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,我们不再受限于物理上的界限,而是让CPU、内存、磁盘、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理,实现服务器整合,让IT对业务的变化更具适应力——这就是服务器的虚拟化。

1、缺乏虚拟化的总体规划

在部署虚拟化之前缺乏总体规划是当前虚拟化存在的最大陷阱。例如,部分用户只为提高部分应用中的服务器资源利用效率,缺乏对服务器、负载、应用和业务需求的全面研究和规划,等到应用了虚拟化软件之后,才认识到虚拟化需要针对不同的工作负载进行不同的考虑,并对不同的负载采用不同的方案,随之还会涉及虚拟应用的整合比等问题。还有很多用户对TCO研究不足,甚至在上虚拟机之前根本未考虑到还需在硬件、基础架构方面作出更多的深入分析和优化的投入。没有前期规划,会给虚拟化应用带来极大的风险。

2、缺乏虚拟化的系统管理

很多用户对虚拟化系统的管理没有充分认知,在部署后也没有重视并实施具体的管理方法,这很可能会导致虚拟环境产生性能问题,并给IT人员带来无尽的新的头疼问题。例如,在容量、性能、配置或自动化部署和管理等方面,虚拟化必然会成为一系列新问题的导火索。轻视虚拟化应用中的系统管理的复杂程度,造成系统管理不到位,将是虚拟化应用中致命的问题。

3、虚拟机负载过重

虚拟化可以对资源进行动态配置,从而处理更多,或者更少的负载,这种作法似乎可以解决虚拟设施可能负载过重的问题。但这并不意味着虚拟服务器就是永远压不垮的。虚拟技术有其自己的限制,在基础设施中添加其无法应付的太多虚拟机会适得其反。很多用户在配置虚拟机时对物理机的承受能力没有进行深入分析。

4、缺少测试环节

虚拟化是实现快速资源服务的途径,但这并不意味着IT部门就可以忽视虚拟机实施前和向虚拟基础设施分配应用之前的容量规划和测试。很多企业用户在应用了动态虚拟机之后才意识到没有测试I/O、占用率等其他问题,就匆匆将新的应用或服务器搬进了虚拟环境。这往往会带来很大的问题。

5、没有持续优化

在虚拟化中,大量的需求都是动态的。这也意味着企业在部署虚拟化的相关解决方案之后需要进行持续地管理与优化。很多用户在这个方面做得非常不够。企业的IT主管必须从一开始就做好虚拟机生命周期管理规划,并同时配备相关虚拟化管理制。

YUNVM,替您解决这些问题!

Windows安装两个不同版本的mysql数据库步骤

由于新旧项目数据库版本差距太大,编码格式不同,引擎也不同,所以只好装两个数据库。

本次安装两个mysql数据库,版本分别是4.0.18,5.5.36。都是可执行文件直接安装。

本机上之前已经安装完5.5.36版本,单个数据库问题不大,一步一步下去便安装完毕。

另一个版本也直接点击下一步一直安装,要注意的地方是,另外找一个目录。比如:

5.5.36: d:mysql5.5.36

4.0.18: d:mysql4.0.18

以上在Windows7和Windows Server 2008实验通过。

  接下来是第二个数据库4.0.18版本的配置:

1 配置my.ini

进入到安装目录,发现几个my***.cnf文件,找一个做为配置原件。

这边使用的是my-medium.cnf,将其改名为my.ini

一共更改三处

-1: 找到如下配置段:

[client]

#password=my_password

port=3306

#socket=MySQL

将其更改为:

[client]

#password=my_password

#5.5.36版本已经占用3306这个端口号,所以改为3307

port=3307

#socket=MySQL

#设置编码格式,看项目了,是否是使用默认的,不需要的可以直接加#屏蔽

default-character-set=utf8

-2:

[mysqld]

port=3306

#socket=MySQL

将其更改为:

[mysqld]

port=3307

#socket=MySQL

# 同理,编码格式是否改变看项目需求

#character-set-server=utf8

-3:重点部分

# Uncomment the following rows if you move the MySQL distribution to another

# location

#basedir = d:/mysql/

#datadir = d:/mysql/data/

将其更改为:

# Uncomment the following rows if you move the MySQL distribution to another

# location

basedir = d:/mysql4.0.18/

datadir = d:/mysql4.0.18/data/

  2 安装服务

-1: 进入bin目录

打开cmd, 输入一下命令

d:

cd mysql4.0.18bin

-2: 安装mysql服务

之前安装的5.5.36版本,使用的是默认的mysql服务名:MySQL

可以打开任务管理器–服务,查看到这个服务。

4.0.18版本需要使用一个新的服务名,这边命名为:mysql4.0.18

进入到bin目录之后,输入以下代码安装服务:

mysqld –install mysql4.0.18 –defaults-file=’d:mysql4.0.18my.ini’

如果运行成功,则会显示Service Successfully installed.

这时候打开任务管理器–服务,可以看到一个mysql4.0.18服务。

  3 设置密码

-1:

这时候保持在bin目录中,不要离开。

输入以下代码:

mysql -u root -P 3307

3307是端口号,如果正常,就连接到数据库了。

-2:

这时候,多了一个mysql符号。

输入以下命令,设置密码:

mysql>use mysql;

mysql>update user set password=password(‘你想设置的密码’) where user=’root’;

mysql>flush privileges;

mysql>quit;

  开启和关闭服务:

方法1:可以在任务管理器–服务中找到这个两个mysql服务,右键点击名称,显示启动服务

和停止服务。

方法2:打开cmd, 通过net start ***/net stop ***来开启和关闭服务。

net start mysql // 开启mysql5.5.36服务

net stop mysql // 关闭mysql5.5.36服务

net start mysql4.0.18 // 开启mysql4.0.18服务

net stop mysql4.0.18 // 关闭mysql4.0.18服务