VirtualBox远程显示使得虚拟机的访问更加随意和简单,但是该功能的初始安装就完全是另一种情况。
目前创新互联建站已为1000多家的企业提供了网站建设、域名、雅安服务器托管、网站运营、企业网站设计、梁平网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
Oracle VM VirtualBox是免费的开源桌面虚拟化和服务器虚拟化软件。通过VirtualBox,可以支持三种虚拟机访问模式:通过VirtualBox软件自带界面;通过任意支持子虚拟机终端对话模式的界面(如VNC-Virtual Network Computing,RDS-Remote Desktop Service或任何其它协议)进行;通过远程显示系统进行。
远程显示系统是一个内置功能,功能强大但安装复杂。VirtualBox远程显示借助微软的RDP协议连接虚拟机,不仅Windows虚机,还包括所有安装了VirtualBox扩展包的子操作系统。让人沮丧的原因是在VirtualBox远程显示可以正常工作之前,需要经历一个异常繁琐的安装过程。
一旦它开始工作,您几乎可以在任何地方访问VirtualBox子虚拟机,而不受控制界面安装所在位置的限制。下面是关于如何安装Oracle VM VirtualBox远程访问的步骤:
增加VirtualBox远程显示扩展
首先,您需要安装可以启用VirtualBox远程显示系统的扩展包VirtualBox download页面中,可以找到Oracle VM VirtualBox Extension Pack,可以增加一系列的功能支持:USB2.0设备、因特尔网卡的PXE启动和VirtualBox远程显示系统。如果VirtualBox软件已经安装,所需的就是下载对应版本的扩展包。用于4.1.12和4.0.16版本的扩展包完全不同,所以您需要做出正确选择。
VirtualBox设置中显示的扩展包列表。在右侧位置可看到Add Package标签
在安装扩展包之前,需要关闭--注意不是挂起--所有运行中的虚拟机,并关闭整个VirtualBox系统。在Windows中,您只需双击扩展包或手动在File Preferences Extensions中点击Add Package图标找到正确的安装包列表。如果您是通过命令行操作的,通过VBoxManager extpack命令添加VirtualBox远程显示扩展包。
安装完成后,重启宿主机。简单地停止和重启VirtualBox软件是不可行的,但是VirtualBox并不会提示您重启。
设置虚拟机端口
现在您已经开始进入VirtualBox远程访问模式,但是还需要通过RDP单独地配置每台您需要访问的虚拟机端口。这一步需要注意:要为每台将建立RDP连接的子虚拟机分配端口号,但是连接所使用的是宿主机的IP地址,而不是子机。每台子机的端口号要不同以避免冲突。
为每台子虚拟机选择端口号。每台虚拟机必须拥有唯一的RDP访问端口
例如,我在VirtualBox中有两台虚拟机希望通过RDP访问--一台运行Windows而另一台运行测试版Haiku OS.Windows
VM分配5001端口,而Haiku分配5002端口。两台机器都通过宿主机IP地址加上子虚拟机的端口访问:输入192.168.0.30:5001访问Windows,192.168.0.30:5002访问Haiku.
要设置指定虚拟机的端口,登录到Settings页面,选择Display Remote Display.Check Enable
Server,选择服务器端口。您可以在虚拟机运行或停止状态时进行操作(暂停时不可以),而且不需要重启虚拟机启用配置。我不建议使用Windows
OS默认分配的3389端口,因为或许会跟已经在宿主机上的某台RDP服务器冲突。
接下来,在Authentication
Method下拉菜单中可以选择三种远程客户端连接VM的认证模式。Null模式如同字面理解:不需要认证,也就是任何知道该端口号的人都可以访问。External模式通过VirtualBox软件内置的证书库进行验证,防止用户使用宿主机或虚拟机XML设置文件中的证书登录。Guest模式是一种全新的模式,通过Guest
Addition可以防止子OS用户,这种模式没有测试过。
如果选择Null模式,您可以在任何时间连接到目标系统--即使它正在启动中。而且您不仅仅连接到运行OS的宿主机,同时连接到某台虚拟机。因此,首先要对连接模式的选择加以小心管理。
管理VirtualBox远程显示连接
最后,通过VirtualBox远程显示系统连接到虚拟机就变得简单了。需要做的就是通过一台支持微软RDP的终端访问,例如Windows的Remote
Desktop Connection终端,或Linux的rdesktop或krdc.
通过VirtualBox RDP访问一台Windows
7子机的实例。该显示大小经过了调整
通过远程设备连接所需的详细配置参数可能会差别很大。例如,在Windows Remote Desktop
Connection终端中,需要提前配置的是性能优化,可以在终端Experience页中的Options菜单配置。根据您使用的LAN或WAN环境,对参数进行修改。
如果您用的是VirtualBox Guest
Additions,显示画面会根据指定的RDP连接分辨率自动进行调整。但是如果您希望选择的分辨率跟虚拟机正在运行的不一致,那么VirtualBox远程显示的这个功能可能就无法实现。
最后一点,不是所有通过RDP连接的虚拟机表现都一样。采用了VirtualBox 子系统扩展包的OS可能在鼠标跟踪等方面要比其它终端更精确一些。
VirtualBox远程显示提供了单一的、统一机制的虚拟机远程访问模式。它开启了一种完全不同于本地控制台的管理方法。
1、1、调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。
2、2、调整应用程序结构设计。这一部分也是在开发信息系统之前完成,程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构。不同的应用程序体系结构要求的数据库资源是不同的。
3、3、调整数据库SQL语句。应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了ORACLE数据库的性能。ORACLE公司推荐使用ORACLE语句优化器(Oracle Optimizer)和行锁管理器(row-level manager)来调整优化SQL语句。
4、4、调整服务器内存分配。内存分配是在信息系统运行过程中优化配置的,数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小。需要注意的是,SGA区不是越大越好,SGA区过大会占用操作系统使用的内存而引起虚拟内存的页面交换,这样反而会降低系统。
5、5、调整硬盘I/O,这一步是在信息系统开发之前完成的。数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O负载均衡。
6、6、调整操作系统参数,例如:运行在UNIX操作系统上的ORACLE数据库,可以调整UNIX数据缓冲池的大小,每个进程所能使用的内存大小等参数。
实际上,上述数据库优化措施之间是相互联系的。ORACLE数据库性能恶化表现基本上都是用户响应时间比较长,需要用户长时间的等待。但性能恶化的原因却是多种多样的,有时是多个因素共同造成了性能恶化的结果,这就需要数据库管理员有比较全面的计算机知识,能够敏感地察觉到影响数据库性能的主要原因所在。另外,良好的数据库管理工具对于优化数据库性能也是很重要的。
你好:一般的数据库都是用的rac进行集群,用到负载均衡什么的,这个很复杂,一般都是系统工程师来进行维护,WebSphere等配置jdbc过程中配置成两个数据源就可以来均衡访问不同的服务器ip。
集群有两个方面:
1,Portal实例是通过PORTAL中的OC4J集群实现。目前只能支持stateless,不支持stateful.
2,Portal数据库。PORTAL repository可以通过RAC来实现集群。这需要将infrastructure配置成RAC。
通过RAC实现。只是共享存储。各台机器有自己的共享内存。并非每台机器的内存共享累加起来组成一个数据库的共享内存。 RAC的好处是所有机器组成一个集群。 ORACLE RAC工作原理 在一个应用环境当中,所有的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。同时还需要两类软件,一个是集群软件,另外一个就是Oracle数据库中的RAC组件。同时所有服务器上的OS都应该是同一类OS,根据负载均衡的配置策略,当一个客户端发送请求到某一台服务的listener后,这台服务器根据我们的负载均衡策略,会把请求发送给本机的RAC组件处理也可能会发送给另外一台服务器的RAC组件处理,处理完请求后,RAC会通过集群软件来访问我们的共享存储设备。 逻辑结构上看,每一个参加集群的节点有一个独立的instance,这些instance访问同一个数据库。节点之间通过集群软件的通讯层(communication layer)来进行通讯。同时为了减少IO的消耗,存在了一个全局缓存服务,因此每一个数据库的instance,都保留了一份相同的数据库cache。 RAC中的特点是:每一个节点的instance都有自己的SGA 每一个节点的instance都有自己的background process 每一个节点的instance都有自己的redo logs 每一个节点的instance都有自己的undo表空间所有节点都共享一份datafiles和controlfiles Oracle还提出了一个缓存融合的技术(Cache fusion) 目的有两个 1.保证缓存的一致性IXPUB技术博客 2.减少共享磁盘IO的消耗IXPUB技术博客因此在RAC环境中多个节点保留了同一份的DB CACHE 缓存融合(Cache fusion)工作原理: 1.其中一个节点会从共享数据库中读取一个block到db cache中 2.这个节点会在所有的节点进行交叉db block copy 3.当任何一个节点缓存被修改的时候,就会在节点之间进行缓存修改 4.为了达到存储的一致最终修改的结果也会写到磁盘上 ClusterWare组件 有四种Service Crsd - 集群资源服务 Cssd - 集群同步服务 Evmd - 事件管理服务 oprocd - 节点检测监控有三类Resource VIP - 虚拟IP地址(Virtual IP) OCR - Oracle Cluster Registry(集群注册文件),记录每个节点的相关信息 Voting Disk - Establishes quorum (表决磁盘),仲裁机制用于仲裁多个节点向共享节点同时写的行为,这样做是为了避免发生冲突。 RAC的组件 提供过了额外的进程,用来维护数据库 LMS - Gobal Cache Service Process 全局缓存服务进程 LMD - Global Enqueue Service Daemon 全局查询服务守护进程 LMON - Global Enqueue Service Monitor全局查询服务监视进程 LCK0 - Instance Enqueue Process 实例查询进程
OCFS2 是 Oracle 开发的一个通用集群文件系统,与 Enterprise Linux 内核集成在一起。它允许所有节点在集群文件系统上同时共享文件,因而消除了管理原始设备的需求。这里,您将在 OCFS2 文件系统中寄宿 OCR 和表决磁盘。您可以从OCFS2 用户指南获取有关 OCFS2 的其他信息。
在 Enterprise Linux 安装期间,您应该已经安装了 OCFS2 RPM。验证 RPM 是否已经安装在两个节点上。
rac1- rpm -qa | grep ocfs
ocfs2-tools-1.2.2-2
ocfs2console-1.2.2-2
ocfs2-2.6.9-42.0.0.0.1.ELsmp-1.2.3-2
创建 OCFS2 配置文件。在 rac1 上,以 root 用户身份执行
# ocfs2console
1. OCFS2 控制台:选择Cluster,然后选择Configure Nodes。
2. “集群堆栈已经启动”:单击Close。
3. 节点配置:单击Add。
4. 新增节点:添加以下节点,然后单击Apply。
名称:rac1
IP 地址: 192.168.2.131
IP 端口: 7777
名称:rac2
IP 地址: 192.168.2.132
IP 端口: 7777
5. 验证生成的配置文件。
# more /etc/ocfs2/cluster.conf
node:
ip_port = 7777
ip_address = 192.168.2.131
number = 0
name = rac1
cluster = ocfs2
node:
ip_port = 7777
ip_address = 192.168.2.132
number = 1
name = rac2
cluster = ocfs2
cluster:
node_count = 2
name = ocfs2
6. 将配置文件传播到 rac2。您可以在 rac2 上重新运行上述步骤以生成配置文件,或者在 rac1 的 OCFS2 控制台上选
择Cluster 和 Propagate Configuration 以将配置文件传播到 rac2。
配置 O2CB 驱动程序。O2CB 是一组集群服务,负责管理节点与集群文件系统之间的通信。下面是对各个服务的说明:
● NM:用于跟踪 cluster.conf 中的所有节点的节点管理器
● HB:当节点加入或离开集群时向上/向下发出通知的心跳服务
● TCP:处理节点之间的通信
● DLM:用于跟踪所有锁、这些锁的所有者以及状态的分布式锁管理器
● CONFIGFS:在 /config 中挂载的用户空间驱动的配置文件系统
● DLMFS:用户空间与内核空间 DLM 的接口
在两个节点上执行下面的过程,将 O2CB 配置为在引导时启动。
当系统提示您指定心跳死亡阈值时,您必须指定一个大于 7 的值,以防止节点由于较慢的 IDE 磁盘驱动器而崩溃。心跳死
亡阈值是一个用于计算隔离时间的变量。
Fence time (seconds) = (heartbeat dead threshold -1) * 2
在我们的环境中,120 秒的隔离时间很合适。两个节点上的心跳死亡阈值应该完全相同。
以 root 用户身份执行
# /etc/init.d/o2cb unload
Stopping O2CB cluster ocfs2: OK
Unmounting ocfs2_dlmfs filesystem: OK
Unloading module "ocfs2_dlmfs": OK
Unmounting configfs filesystem: OK
Unloading module "configfs": OK
# /etc/init.d/o2cb configure
Configuring the O2CB driver.
This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot. The current values will be shown in brackets ('[]'). Hitting
without typing an answer will keep that current value. Ctrl-C
will abort.
Load O2CB driver on boot (y/n) [y]: y
Cluster to start on boot (Enter "none" to clear) [ocfs2]:
Specify heartbeat dead threshold (=7) [7]: 61
Writing O2CB configuration: OK
Loading module "configfs": OK
Mounting configfs filesystem at /config: OK
Loading module "ocfs2_nodemanager": OK
Loading module "ocfs2_dlm": OK
Loading module "ocfs2_dlmfs": OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Starting O2CB cluster ocfs2: OK
格式化文件系统。在格式化和挂载文件系统之前,应验证 O2CB 在两个节点上均联机;O2CB 心跳当前没有活动,因为文
件系统未挂载。
# /etc/init.d/o2cb status
Module "configfs": Loaded
Filesystem "configfs": Mounted
Module "ocfs2_nodemanager": Loaded
Module "ocfs2_dlm": Loaded
Module "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted
Checking O2CB cluster ocfs2: Online
Checking O2CB heartbeat: Not active
您只需在一个节点上格式化文件系统。在 rac1 上,以 root 用户身份执行
# ocfs2console
1. OCFS2 控制台:选择Tasks、Format。
2. 格式:
可用设备:/dev/sdb1
卷标:oracle
集群大小:Auto
节点插槽数量: 4
块大小:Auto
3. OCFS2 控制台:按 CTRL-Q 退出。
挂载文件系统。要挂载文件系统,在两个节点上执行以下命令。
# mount -t ocfs2 -o datavolume,nointr /dev/sdb1 /ocfs
要在引导时挂载文件系统,在两个节点的 /etc/fstab 中添加以下行。
/etc/fstab
/dev/sdb1 /ocfs ocfs2 _netdev,datavolume,nointr 0 0
创建 Oracle 集群件目录。在 OCR 和表决磁盘将驻留的 OCFS2 文件系统中创建目录。
在 rac1 上执行
# mkdir /ocfs/clusterware
# chown -R oracle:dba /ocfs
现在,您已经完成了 OCFS2 的设置。验证您可以在两个节点的共享集群文件系统上读写文件。