




已阅读5页,还剩142页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
云计算基础教程实验 云计算基础教程实验指导书目录实验一 MPI的搭建及OpenMP的配置3实验二 集群系统的管理与任务9实验三 PBS17实验四 MAUI25实验五 Ganglia26实验六 Nagios32实验七 VMware虚拟机49实验八 VirtualBox的安装与配置62实验九 Xen的安装与配置65实验十 KVM与QEMU78实验十一 GNBD环境下的冗余磁盘阵列87实验十二 GFS的安装与配置90实验十三 NFS的安装与配置94实验十四 LVM的安装与创建95实验十五 LVM环境下的RAID镜像99实验十六 VCL103实验十七 Proxmox的使用128实验十八 OpenNebula136 实验一 MPI的搭建及OpenMP的配置1. MPI简介消息传递接口(Message Passing Interface,MPI)是目前应用较广泛的一种并行计算软件环境,是在集群系统上实现并行计算的软件接口。为了统一互不兼容的的用户界面,1992年成立了MPI委员会,负责制定MPI的新标准,支持最佳的可移植平台。MPI不是一门新的语言,确切地说它是一个C和Fortran的函数库,用户通过调用这些函数接口并采用并行编译器编译源代码就可以生成可并行运行的代码。MPI的目标是要开发一个广泛用于编写消息传递程序的标准,要求用户界面实用、可移植,并且高效、灵活,能广泛应用于各类并行机,特别是分布式存储的计算机。每个计算机厂商都在开发标准平台上做了大量的工作,出现了一批可移植的消息传递环境。MPI吸收了它们的经验,同时从句法和语法方面确定核心库函数,使之能适用于更多的并行机。MPI在标准化过程中吸收了许多代表参加,包括研制并行计算机的大多数厂商,以及来自大学、实验室与工业界的研究人员。1992年开始正式标准化MPI,1994年发布了MPI的定义与实验标准MPI 1,相应的MPI 2标准也已经发布。MPI吸取了众多消息传递系统的优点,具有很好的可以执行、易用性和完备的异步通信功能等。MPI事实上只是一个消息传递标准,并不是软件实现并行执行的具体实现,目前比较著名的MPI具体实现有MPICH、LAM MPI等,其中MPICH是目前使用最广泛的免费MPI系统,MPICH2是MPI 2标准的一个具体实现,它具有较好的兼容性和可扩展性,目前在高性能计算集群上使用非常广泛。MPICH2的使用也非常简单,用户只需在并行程序中包含MPICH的头文件,然后调用一些MPICH2函数接口将计算任务分发到其他计算节点即可,MPICH2为并行计算用户提供了100多个C和Fortran函数接口,表1-1列出了一些常用的MPICH2的C语言函数接口,用户可以像调用普通函数一样,只需要做少量的代码改动就可以实现程序的并行运行,MPICH并行代码结构如图1-1所示。表 01常用的MPICH2函数接口编号函数名称功能描述01MPI_Init初始化MPI接口02MPI_Comm_size通信器进程数03MPI_Comm_rank当前进程的进程号04MPI_Bcast广播方式发送数据05MPI_Reduce组合数据到主进程06MPI_Finalize终止MPI图 01 MPICH并行代码结构在Linux集群环境下,MPICH2运行并行程序需要借助于网络文件系统(Network File System,NFS)共享工作区和使用SSH(Secure SHELL)通过网络发送共享工作区中的并行可执行代码,其中NFS需要编译内核使Linux支持网络文件系统。NFS的内核选项在File SystemNetwork File System下,服务器端要变异NFS Server Support,客户端编译NFS Client Support。下面以在Red Hat Enterprise Linux 5上安装MPICH2为例简述在IBM Blade集群环境下搭建MPI并行运行环境的过程。2. MPI的搭建1) 服务器的配置(1) 编译安装MPICH2MPICH2的安装可以使用根用户root安装也可以使用普通用户权限安装,这里我们以root用户安装为例,首先创建MPICH2的安装目录,如/user/local/mpich2-install,然后指定mpich2-1.1.0al.tar.gz安装包,切换到该目录下运行./configure-prefix=/user/local/mpich2-install指定MPICH2安装目录,执行命令make & make install将MPICH2的可执行程序及库文件安装到/user/local/mpich2-install目录下。(2) 设置NFS服务器端修改/etc/exports,在文件中加入/user/local/mpich2-install*(rw,no_root_squash,sync)指定将MPICH2的安装目录(这里我么将MPICH2安装目录作为工作区)通过NFS服务器共享给所有客户机。(3) 设置SSH更改/etc/hosts文件,添加主机名IP地址,例如: localhost.Localdomain localhost bcln1 bcln2 bcln3配置host.conf文件完成后,为了使节点相互通信不需要输入密码,还要进行安全验证的配置,使用ssh-keygen-trsa命令生成SSH密钥对。切换到/root目录下,cp id_rsa.pub authorize_keys将公钥拷贝为授权钥匙,并将在/root目录下生成的.ssh文件夹拷贝到所有节点。这里我们使用了IBM集群管理软件XCAT的并行拷贝命令pscp-r/root/.ssh bcln1-bcln14:/root/一次性地将.ssh目录并行拷贝到所有的计算节点上,避免重复多次运行scp命令的麻烦。(4) 修改环境变量profile在/etc/profile中加入MICH2可执行文件的环境变量export PATH=”$PATH:/user/MPICH-install/bin”,用命令source/etc/profile是新增加的环境变量生效。(5) 添加mpd.conf文件#echo “secretword=myword” /etc/mpd.conf#echo /etc/mpd.conf#echo 600 /etc/mpd.conf(6) 添加主机名称集合文件mpd.hosts文件在mpd.hosts文件中加入如下主机名: bcln1 bcln22) 客户端的配置(1) 挂载网络文件系统在/user/local目录下创建mpich2-install文件夹,然后在/etc/fstab中加入需要挂载的网络文件系统,将服务器端共享的工作区挂载到本地,内容如下。Server:/user/local/mpich2-install /user/local/mpich2-install nfs defaylts 0 0(2) 添加环境变量类似于服务器端,在/etc/profile中加入MPICH2可执行文件的环境变量ecport PATH=”$PATH:/user/MPICH-install/bin”,,使用命令source/etc/profile是新增加的环境变量生效。3) MPICH2测试切换到工作区,运行mpdboot-n -f mpd.conf启动mpi的守护程序,该守护程序通知所有参加并行计算的计算节点,接下来运行mpiexec-n cpi命令测试由MPICH2提供的计算圆周率的并行程序,若运行完毕未出现错误提示,则表示MPICH2的环境配置成功。3. OpenMP简介OpenMP是一种针对共享内存的多线程编程技术(SMP是配合OpenMP进行多线程编程的最佳硬件架构),是由一些具有国际影响力的大规模软件和硬件厂商共同定义的的标准。它是一种编程指导语句,指导多线程、共享内存并行的应用程序编程接口,OpenMP是一种能被用于显示指导多线程、共享内存并行的应用程序编程接口。其规范由SGI发起。OpenMP具有良好的可移植性,支持多种编程语言。OpenMP能够支持多种平台,包括大多数的类UNIX及Windows NT系统。OpenMP最初是为了共享内存多处理的系统结构而设计的并行编程方法,与通过消息传递进行并行编程的模型有很大的区别。这是用来处理多处理器共享的一个内存设备的情况。多个处理器在访问内存的时候使用的是相同的内存编址空间。SMP是一种共享内存的体系结构,分布式共享内存将多及的内存资源通过虚拟化的方式形成一个统一的内存空间提供给多个机器上的处理器使用,OpenMP对这样的机器也提供了一定的支持。OpenMP的编程模型以线程为基础,通过编译指导语句来显示地指导并行化,为编程人员提供了对并行化的完整控制。OpenMP使用Fork-Join(派生连接,见图1-2)并行执行模型。一个OpenMP程序从一个单个线程开始执行,在程序某点需要并行时程序派生(Fork)出一些额外的线程组成线程组,被派生出来的线程称为组的从属线程,并行区域中的代码在不同的线程中并行执行,程序执行到并行区域末尾,线程将会等待直到整个线程组到达,然后将它们连接(Join)在一起。在该点处线程组中的从属线程终止而初始主线程继续执行直到下一个并行区域到来。一个程序中可以定义任意数目的并行块,因此,在一个程序的执行中可Foek-Join若干次。使用OpenMP在编译器编译程序时,会识别特定的注释,而这些特定的注释就包含着OpenMP程序的一些语句。在C/C+程序中,OpenMP是以#pragma omp开始,后面跟具体的功能指令。在OpenMP中编译指导语句是用来表示开始并行运算的特定注释,在编译器编译程序时,编译指导语句能够被并行编译程序识别,串行编译程序则忽略这些语句。并行编译程序根据这些指导语句将相关代码转换成在并行计算机中运行的代码。一条编译指导语句由directive(命令/指令)和clause list(子句列表)组成。OpenMP的编译指导语句格式为:#pragma omp directive-nameclause, Clausenew-lineStructured-blockOpenMP的所有编译指导语句由#pragma omp开始,其中directive部分包含OpenMP的主要命令,包括parallel、for、parallel for、section、sections、single、master、critical、flush、ordered、barrier和atomic。这些指令用来分配任务或同步。后面的可选子句Clause给出了相应的编译指导语句的参数,子句可以影响到编译指导语句的具体行为,每一个编译指导语句都有一系列适合它的子句,其中有6个指令(master、critical、flush、ordered、atomic、barrier)不能跟相应的子句。new-line为换行符,表示一条编译指导语句的终止。编译指令不能嵌入C、C+、Fortran语句,C、C+、Fortran语句也不能嵌入编译指令。OpenMP运行时库函数用来设置和获取执行环境相关的信息,其中也包含一系列用一同步的API。要使用运行时库函数所包含的函数,应该在相应的源文件中包含OpenMP头文件,即omp.h。OpenMP运行时库函数的使用类似与相应编程语言内部的函数调用。有编译指导语句和运行时库函数可见,OpenMP同时结合了两种并行编程的方式,通过编译指导语句,可以将串行的程序逐步改造成一个并行程序,达到增量更新程序的目的,从而在一定程度上减少程序编写人员的负担。同时,这样的方式也能将串行程序和并行程序保存在同一个源代码文件中,减少了维护的负担。在运行的时候,OpenMP需要运行函数库的支持,并会获取一些环境变量来控制运行的过程。这里提到的环境变量是动态函数库中用来控制函数运行的一些参数。4. OpenMP的配置OpenMP的配置非常简单,GCC4.2以上的版本的编译器都自带了OpenMP的头文件和库,几乎不需要再做修改和配置就能使用OpenMP实现共享内存并行运行,下面我们通过一个实例来阐述在Linux下如何配置OpenMP#include Int main( argc,argv)int argc;Char *argv;#pragma omp parallel printf(“Hello world!n”); return 0;考察上面这段简单的Hello world代码,可以看出,除了多了一行#pragma omp parallel以外,这段代码和普通的C语言代码没有什么区别,#pragma omp parallel是一条OpenMP标准的语句,它的含义是让后面的语句按照多线程来执行。当我们采用GCC编译时,加入OpenMP的参数-fopenmp,即可将程序并行化,命令如下:rootlocalhost # gcc -fopenmp helloworld.crootlocalhost # ./a.outHello world!编译、执行程序,屏幕上打印出了一遍“Hello world”。-fopenmp是GCC编译支持OpenMP程序的参数,GCC4.2以上的版本默认支持OpenMP。由于系统环境变量中的NUM_THREADS的默认为1,所以程序只使用一个线程来执行。如果要使用多线程执行程序,可以修改环境变量NUM_OMP_THREADS,命令如下:rootlocalhost # NUM_OMP_THREADS=5rootlocalhost # export NUM_OMP_THREADSrootlocalhost # ./a.outHello world!Hello world!Hello world!Hello world!Hello world!以上命令表示给线程数量的环境变量NUM_OMP_THREADS赋值为5并导出,再执行程序,得到5遍的“Hello world!”,说明程序将打印语句用5个线程分别执行一遍。如果不希望受到运行系统环境变量的限制,也可以将代码#pragma omp parallel替换成#pragma omp parallel num_threads(10),编译之后再执行程序,得到10遍“Hello world!”,这是无论环境变量NUM_OMP_THREADS的值为多少,都只得到10遍的“Hello world!”。实验二 集群系统的管理与任务1. XCAT简介一个普通的小规模集群系统(节点小于10)在没有集群管理软件进行管理的情况下,通过手动安装、配置每台计算节点,其工作量的多少是可想而知的,以一个包含10个节点的集群系统为例,在每一台计算节点上安装操作系统、配置并行计算机环境、同步集群用户,在保证不出错的情况下,花费的时间大约是两个小时,10个计算节点一共需要20个小时左右,这还是一个比较小的集群系统,如果像石油勘探、天气预报等使用的动辄几百个节点的集群系统,照这种方法逐个配置计算节点,虽然耗费的时间太多,而且要重启计算节点也必须逐个进行,操作极其繁琐,因此需要集群管理软件来管理集群系统,提高工作效率。XCAT(Extreme Cluster Administration Toolkit)是由大型计算设备提供商IBM开发的一套集群管理套件,在IBM的刀片箱上集成了一个KVM的硬件模块,该模块控制着箱内的所有刀片,包括电源开关、启动顺序等,XCAT可以控制KVM模块,用户可以通过该套件实现集群计算节点的管理,使得集群管理更容易,用户只需要安装好管理节点,配置好XCAT的相关参数,就可以通过XCAT控制计算节点的安装(使用PXE网络启动和KickStart),配置、重启等操作,特别是使用XCAT安装计算节点,在管理节点上设置安装源以后,运行发送命令,计算节点就会自动从管理节点同步安装文件,自动将管理员设置好的软件包等安装到计算节点上,无需管理员诸葛安装和配置每台计算节点,为集群管理员节省了大量时间。2. XCAT的配置XCAT能帮助管理员有效地管理集群,避免了手动管理每一个集群计算节点的麻烦。只需要载管理节点上安装和配置好XCAT的运行环境,就能使集群的管理更加简单,接下来介绍XCAT的安装与配置。1) XCAT安装的前提条件管理节点上至少要有两个网卡,一个对内部的计算节点进行管理,一个对外提供计算应用。除此之外,还需要如下4个XCAT的软件包。xcat-dist-core-1 . 2 . 0-RC3.tgzxcat-dist-doc-1 . 2 . 0-RC3.tgzxcat-dist-ibm-1 . 2 . 0-RC3.tgzxcat-dist-oss-1 . 2 . 0-RC3.tgz2) 安装XCAT1 解压缩前面列出的XCAT必须的4个软件包,如果将这4个软件包解压到/opt/xcat 目录下则运行如下命令。rootmanager#tar-xzvpf xcat-dist-core-1 .2 .0-RC2.tgz-C /opt/xcatrootmanager#tar-xzvpf xcat-dist-oss-1 . 2 . 0-RC2.tgz-C /opt/xcatrootmanager#tar-xzvpf xcat-dist-ibm-1 . 2 . 0-RC2.tgz-C /opt/xcatrootmanager#tar-xzvpf xcat-dist-doc-1 . 2 . 0-RC2.tgz-C /opt/xcat2 安装包解压完成后,会在/opt/xcat 中生成安装脚本setupxcat,载生成的文件夹中进行XCAT的首次安装。rootmanager#./setupxcat3 配置网络时间同步服务器(NTP)。设置NTP的目的是为了使集群中的计算节点能自动管理节点上同步时间,避免了手动修改每台计算节点造成的时间不统一的问题,首先我们载管理节点上设置好NTP服务器端,编辑/etc/ntp.conf配置文件,载文件中输入如下内容。#vi /etc/ntp.confserver server fudge stratum 10driftfile /var/lib/ntp/drift编辑ntp.conf完成后,需要载服务器开启NTP服务,使系统自动的时候自动加载NTP服务,命令如下。#chkconfig -level 345 ntpd on4 定义集群XCAT对计算节点的管理主要依靠集群设备中硬件的定义信息表,这个表由管理员载集群管理节点上配置,表2-1列出了常用的几个表名及用途。表2-1 XCAT中的表 表 名用 途site.tabxCAT住配置表,集群的全局定义表,是整个XCAT中最重要的一个表,它定义了rsh路径、rcp路径、安装计算节点需要的tftp目录、集群的域名解析服务器地址、管理节点的名称、使用的作业管理系统名称、资源调度器名称等nodehm.tabXCAT的计算节点硬件管理表,记录了节点名称、高级系统管理适配器、电源类型、终端类型等硬件信息Nodelist.tab定义集群中多有节点的名称、节点从属组、运行状态等Nodepos.tab记录了每个节点所安放的物理位置noderes.tab定义节点组名称、节点的启动方式、tftp服务器IP地址、nfs服务器IP地址、安装启动的网卡设备名称等Nodetype.tab定义节点的系统类型、构架,使用的镜像类型及从属的组名称passwd.tab定义各种管理设备使用的用户及密码postscripts.tab定义kickstar等安装结束后配置节点的相关脚本Postdeps.tab定义postscripts中脚本的相互依存关系Networks.tab定义节点所使用的网段、掩码、网关、DNS信息conserver.tab定义节点通过何种方式转发console信息mp.tab定义节点的管理设备及在插槽的位置mpa.tab定义管理设置的类型及使用何种方式进行管理等定义好XCAT 管理集群的表以后,就可以在系统管理节点上创建DNS服务、收集计算节点的MAC地址、创建DHCP服务等,按照传统的方式配置这些服务,不仅需要管理员非常熟悉DNS、DHCP服务器等的配置,还非常容易载配置中出现错误。XCAT已经为管理员简化了这方面的配置,剩下的事情就交由XCAT自动执行安装配置,不仅简化了操作,还节约了时间,同时在保证所有表配置信息不出错的情况下,XCAT能将这些服务器安装、配置正确。下面分别给出了创建DNS、收集MAC地址信息、创建DHCP服务的命令。5 创建DNS服务。#makedns6 收集所有计算节点的MAC地址信息至mac.tab。#getmacs compute7 创建DHCP服务。#makedhcp -new -allmac8 第二次运行setupxcat,完成CAT的安装。#. /setupxcat3. 使用XCAT安装计算节点XCAT配置完成后,就可以通过XCAT安装计算节点了,在安装计算节点前,还需要设置系统安装镜像及NFS、TFTP服务等。首先要利用Linux的安装光盘建立安装计算节点需要的操纵系统下载源,这样当所有的计算节点来时安装系统时会自动到管理节点上下载安装包到本地执行安装。这需要在管理节点上打开TFTP服务,XCAT整合了这些繁琐的操作,只需要运行一个命令copycds就可以实现,运行完这个命令后,会在根目录下生成install文件夹,在这个文件夹下生成系统的安装源文件,以64位的Red Hat Enterprise Linux 为例,生成目录为/install/rhel-SERVER5.3/x86_64,拷贝安装源文件这个过程会耗费约10分钟,具体时间根据管理节点的性能而有差异。拷贝完安装源文件,接下来再复制XCAT目录下保存的系统安装完成后额外需要安装的软件,命令如下。#cd /opt/xcat#find post -print | cpio -dump /install安装源和额外安装的软件配置完成后,需要建立计算节点启动的镜像文件,以便于计算节点从网卡启动时,自动从管理节点上下载启动镜像文件,命令如下。#cd /opt/xcat/stage#./mkstage完成上面的设置以后,为确保XCAT正常控制计算节点,可以先进行电源管理命令的测试,以查看XCAT是否正常检测计算节点的状态,在管理节点的终端输入如下命令。#rpower compute stat若返回如下计算节点的状态信息,则表示XCAT已能正常控制计算节点,否则应根据错误提示,重新配置XCAT。Bc1n1: onBc1n2: onBc1n3: onBc1n4: on.Bc1n12: onBc1n13: onBc1n14: on当XCAT所有的配置完成以后,接下来要进行计算节点的系统安装,采用XCAT来安装计算节点不仅能节省大量的时间,而且所有的计算节点的环境都是一样的,XCAT安装计算节点非常简单,只需要运行几个命令即可。剩下的事缴费XCAT处理就可以了,首先要通过XCAT设置计算节点的启动顺序,由于计算节点是采用网卡引导安装的,因此需要将网卡的启动顺序设置在最前面,命令如下。#rbootseq compute n,c,f,h该命令的作用是设置计算节点的启动顺序为network、cdrom、floppy、harddisk。接下来执行节点的安装命令。#nodeset blade install其中blade为计算节点所属的组,安装的目标为blade组中所有的计算节点,也可以用范围来表示,如要安装bc1n1至bc1n14的计算节点,可以用命令nodeset bc1n1-bc1n14 install,执行完nodeset命令后,XCAT中的nodeset表的状态会发生改变,只要重启计算节点,从网卡启动计算节点,就可以开始计算节点的安装,可以用tabdump nodeset命令来查看该状态,表中的内容如下。#node,groups,status,appstatus,comments,disableunknown,compute,mm,maths,blade,all ,1bc1,mm,all,alive,bc1n8,compute,blade,all ,installing,bc1n4,compute,maths,blade,all ,installing,bc1n7,compute,blade,all ,installing,bc1n12,compute,blade,all ,installing,bc1n2,compute,maths,blade,all ,installing,bc1n14,compute,blade,all ,installing,bc1n9,compute,blade,all ,installing,bc1n13,compute,blade,all ,installing,bc1n1,compute,blade,all ,installing,bc1n6,compute,blade,all ,installing,bc1n10,compute,blade,all ,installing,bc1n3,compute,maths,blade,all ,installing,bc1n5,compute,maths,blade,all ,installing,bc1n11,compute,blade,all ,installing,然后重新启动所有的计算节点,剩下的工作就是等待XCAT控制所有计算节点完成系统的安装,重启计算节点的命令如下。#rpower blade reset安装完所有节点以后,需要配置管理节点上的资源,包括生成SSH密钥、建立NFS服务等,具体步骤如下。1 生成root的SSH keys。#gensshkeys root在/opt/xcat/etc/下将生成一个gkh文件2 更新/etc/exports文件。#vi /etc/exports/opt/xcat *(ro,no_root_squash,sync)/usr/local *(ro,no_root_squash,sync)/install *(ro,async,no_root_squash)/home *(rw,no_root_squash,sync)3 启动NFS服务或使用exportfs。#service nfs start或#exportfs-rvexporting *:/xcatdata/installexporting *:/xcatdata/localexporting *:/xcatdata/homeexporting *:/xcatdata/xcat4 安装结束后,收集SSH host keys。#makesshgkh compute5 测试psh,查看各节点时间是否正常。#psh compute date; date4. 使用XCAT管理计算节点XCAT安装配置完成计算节点的安装后,需要添加集群的用户,与单独的服务器不同,这不仅需要在管理节点上建立集群用户,管理节点上的用户还必需在计算节点上存储一份镜像,以便于集群用户能使用所有的节点。首先在管理节点添加集群用户和用户组。root# groupadd ibmroot# addclusteruserEnter username: hpcuserEnter group: hpcuserEnter UID (return for next): 501Enter absolute home directory root: /homeEnter passed (blank for random): redbookChanging password for user ibm.passwd: all authentication tokens updated successfully.在集群管理节点上完成了用户和组的建立,然后将所有集群用户同步到所有计算机节点上,利用命令pushuser执行。root# pushuser all hpcuser在没有安装XCAT的集群上,计算节点间的文件拷贝是比较费力的,必须重复地使用scp命令拷贝文件到各个计算节点上,虽然可以使用脚本编程语言用循环实现,但其工作量也不小,另外,有些需要在每个计算节点上依次执行的命令,如果按照传统的方式登录到计算节点上去执行,工作的难度可想而知。针对节点间文件拷贝和命令执行不方便这两个问题,XCAT提供了 pscp和psh命令,使用它们可以实现计算节点文件的并行拷贝和命令的并行执行,只需一个命令就可以向所有的节点拷贝文件或执行命令,另外,XCAT还提供了并行网络检测命令pping、节点电源控制命令rpower等,大大减轻了管理员的工作负担,命令如下。1 并行执行psh命令可以在管理节点上并行执行计算节点上的命令。root# psh bc1n1-bc1n3 uname -rBc1n2: 2.6.9-34.ELBc1n1: 2.6.9-34.ELBc1n3: 2.6.9-34.EL2 并行远程拷贝命令pscp可以并行拷贝文件到计算节点上。root# pscp -r /usr/local bc1n1,bc1n3:/usr/localroot# pscp passwd group all:/etc3 并行网络连接测试命令pping可以并行测试集群计算节点的网络状态。root# pping bc1n4-bc1n6Bc1n4: pingBc1n6: pingBc1n5: noping /表示网络不能到达4 远程电源控制命令rpower。rpower noderange on|off|state|reset|boot|cycleroot# rpower bc1n4,bc1n4 statBc1n14: onBc1n5: offroot# rpower bc1n5 onBc1n5: on实验三 PBS1. PBS简介PBS(Portable Batch System)最初由NASA的Ames研究中心开发,目的是提供一个能满足异构计算网络需要的软件包,特别是满足高性能计算的需要。它力求提供对批处理的初始化和调度执行的控制,允许作业在不同主机间路由。PBS独立的调度模块允许系统管理员定义资源和每个作业可使用的数量。调度模块存有各个可用的排队作业、运行作业和系统资源使用状况信息,系统管理员可以使用PBS提供的TCL、BACL、C过程语言。PBS的调度策略可以很容易被修改,以适应不同的计算需要和目标。1 PBS的结构及功能。PBS主要由4个部分组成:控制台、服务进程、调度进程和执行进程。控制台实质上由一系列PBS提供的命令构成,PBS同时还提供了图形化界面XPBS,实现了图形界面与PBS命令的映射:服务进程即pbs_server(简称server),是PBS运行的核心,它集中控制整个集群上的作业运作。调度进程即pbs_sched,它包含了作业运行及运行地点和时间的站点控制策略。执行进程即pbs_mom,实际上由它产生所有正在执行的作业。2 调度策略。PBS为了调度那些应该放在执行队列的作业,提供了一个单独的进程。这是一个灵活的机制,可以实现大量的策略。这个调度程序使用标准的PBS API来和服务器通信,使用一个额外的API来和PBS执行进程通信。通过使用一些额外提供的API,可以增强调度的策略,进而实现一个可替换的调度程序。第一代批处理系统和许多其他的批处理系统都使用大量基于限制作业或控制调度作业的队列。为了按照时间来控制作业的排序,队列会被打开或关闭,或者限制载队列里运行作业的数量;而PBS支持多重队列,并且这些队列有很多其他批处理系统所使用的作业调度属性,PBS服务器本身并不运行作业,也不添加任何限制,这些都是由队列属性实现的。事实上,调度程序仅仅拥有不超过一个有管理员特权的客户端。控制调度的服务器和队列属性可以通过拥有特权的客户端来调整,这些特权命令是qmgr。然而,这些控制通常驻留在调度程序上,而不是服务器上。这些调度程序必须检查服务器、队列和作业的状态,决定服务器和队列属性的设置。在之后的决策中,调度程序必须使用这些设置。另一个方法就是whole pool方法,所有的作业都放在一个单独的队列中,调度程序评估每个作业的特点并且决定运行哪一个作业。这些策略能很容易地包括一些因素,如每天的运行时间、系统的装载、作业的大小等。队列里作业的顺序不需要被考虑。这个方法的主要优势在于用户可以根据自己的主要需求来产生策略,通过调度,使当前的作业更好地适应当前可用的资源。3 PBS系统中的作业执行。PBS系统中的作业执行主要依靠服务进程、调度进程、执行进程等部分,如图3-1,简单的执行过程如下。a. 由客户产生事件,时间通知服务进程开始一个调度周期;b. 服务进程发送一个调度命令给作业调度器;c. 作业调度器向执行过程请求可利用的资源信息;d. 执行做成返回给作业调度器一个资源信息;e. 得到资源信息后,调度器向服务进程请求作业信息;f. 服务进程接受请求,并发送作业信息至作业调度器,产生执行作业的策略;g. 作业调度器发送执行作业请求至服务进程;h. 服务进程接受请求后,发送作业至执行进程执行作业。 图3-1 PBS的执行过程2. PBS的安装PBS的安装应该说是一个标准的Linux的tarball安装方式。安装过程主要有如下几个步骤。1 下载PBS的源码包。OpenPBS-2.3.12sc2.tar2 解压缩软件包。#tar zxvpf OpenPBS-2.3.12sc2.tar3 进入相应的目录,配置、编译。#cd SPBS-1.0.0$./configure -docs -disable-gui$make#make install其中,选项-enable-docs指定要编译文档,选项-disable-gui指定去掉图形界面;选项-enable-scp,先使用scp命令,再使用rcp命令进行数据的复制。默认情况下,PBS会安装在.usr/spoole/PBS目录下,该目录在./configure的时候指定-prefix。3. PBS的配置1) 配置server_name编辑所有的节点的$PBS_HOME/server_name,在里面写入选定的server的主机名,例如:manager2) 配置管理节点在manager的$PBS_HOME/server_priv目录下建立nodes文件。#touch nodes在nodes文件写入所有mom节点的名称。bc1n1 np = 4bc1n2 np = 4.bc1n14 np = 4 其中的np代表的是虚拟处理器的个数,实际上也就是该节点最多可以同时运行多少个任务。3) 配置计算节点为了使计算节点接受管理节点的控制,需编辑每个计算节点$PBS_HOME/mom_priv目录下的config文件,写入如下信息。$logevent 0x1ff$clienthost manager$logevent用于指定日志的级别,使用默认值就可以了,$clienthost为指定server的地址。4. PBS的作业管理PBS安装配置完毕后需启动服务,可以手动执行启动,也可以载rc.local文件中加入启动脚本,最好按mom、server、sched的顺序启动命令,具体如下。#/usr/local/sbin/pbs_mom# /usr/local/sbin/pbs_server -t create#/usr/local/sbin /pbs_sched其中-t create在第一次启动的时候要用,用于创建一些初始化必要的环境,以后启动就不再需要了。接下来要创建作业队列,PBS中的队列分为两种类型,即执行队列和路由队列,下面是一个创建队列的脚本。# Create and define queue verylong#create queue verylongset queue verylong queue_type = Executionset queue verylong Priority = 40set queue verylong max_running = 10set queue verylong resources_max.cput = 72:00:00set queue verylong resources_min.cput = 12:00:01set queue verylong resources_default.cput = 72:00:00set queue verylong enabled = Trueset queue verylong started = True# Create and define queue long#Create queue longset queue long queue_type = Executionset queue long Priority = 60set queue long max_running = 10set queue long resources_max.cput = 12:00:00set queue long resources_min.cput = 02:00:01set queue long resources_default.cput = 12:00:00set queue long enabled = Trueset queue long started = True# Create and define queue medium#create queue mediumset queue medium queue_type = Executionset queue medium Priority = 80set queue medium max_running = 10set queue medium resources_max.cput = 02:00:00set queue medium resources_min.cput = 00:20:01set queue medium resources_default.cput = 02:00:00set queue medium enabled = Trueset queue medium started = True# Create and define queue small#create queue smallset queue small queue_type = Executionset queue small Priority = 100set queue small max_running = 10set queue small resources_max.cput = 00:20:00set queue small resources_min.cput = 00:20:00set queue small resources_default.cput = 00:20:00set queue small enabled = Trueset queue small started = True# Create and d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字营销 课件 第1章 绪论
- 千之家加盟合同范本
- 委托销售珠宝合同范本
- 玉产品采购合同范本
- 医院工程就业合同范本
- 房屋按揭银行合同范本
- 防水供销合同范本
- 居委 调解 追债合同范本
- 连锁餐饮合伙合同范本
- 社区安全知识培训教材课件
- 2025年广西职业院校技能大赛中职组(婴幼儿保育赛项)参考试题库及答案
- 足球俱乐部股权转让协议
- 高中主题班会 高一下学期《安全教育-开学第一课》主题班会课件
- 职业健康知识培训
- 电子商务在文化创意产业的应用与案例
- 龋病龋病的临床表现及诊断讲解
- DB50T 1342-2022 预制菜生产加工行为规范
- 设备吊装搬运施工方案范文
- 医务人员职业暴露与防护讲课
- 全过程造价咨询服务的质量承诺及保证措施
- GB/T 44625-2024动态响应同步调相机技术要求
评论
0/150
提交评论