搭载Solaris操作系统的条件

Navigation:  solaris版本ICV >

搭载Solaris操作系统的条件

Previous pageReturn to chapter overviewNext page

一台运行iCentroView的Sparc架构、搭载Solaris 11操作系统的Oracle服务器应该事先具备的条件

1.iCentroView for Solaris@Sparc采用Sun C/C++编译器编译生成,需要依赖SolarisStudio的运行时环境。这需要安装SolarisStudio的C++运行时库,根据Oracle的规则,SolarisStudio的安装需要向Oracle申请免费的许可,申请时需要注册OracleID。见 https://pkg-register.oracle.com/register/cert_info/11882/。许可证书包含两个文件:Oracle_Solaris_Studio.key.pem和Oracle_Solaris_Studio.certificate.pem。接下来安装SolarisStudio的C++库,例如:

 

mkdir -m 0755 -p /var/pkg/ssl

cd /var/pkg/ssl/

pkg set-publisher -k /var/pkg/ssl/Oracle_Solaris_Studio.key.pem -c /var/pkg/ssl/Oracle_Solaris_Studio.certificate.pem -G '*' -g https://pkg.oracle.com/solarisstudio/release solarisstudio

pkg install solarisstudio-123/library/c++-libs

使用pkg命令,系统管理员需要事先配置好IPS。一般来说,操作系统安装完毕,缺省情况下IPS的发布包指向ORACLE网站的release更新,这种情况需要保证服务器可以联网。

 

2.iCentroView运行会使用数量可观的IPC共享内存、信号量等系统资源,这部分资源可能会受系统默认配置的限制,在使用iCentroView前须先确认这部分资源是否满足条件。我们建议信号量个数限制如project.max-sem-ids、project.max-shm-ids不小于512k,共享内存一般都足够大,不需要另行设置。

配置的方法的一个例子如下:

 

1)首先用root用户登入,用id -p命令检查root用户使用哪个project配置;

# id -p
uid=0(root) gid=0(root) projid=1(user.root)
这个例子里使用的是user.root

 

2)用 projects -l 命令检查现有的projects配置,察看user.root的配置;

# projects -l
system
        projid : 0
        comment: ""
        users  : (none)
        groups : (none)
        attribs:
user.root
        projid : 1
        comment: ""
        users  : (none)
        groups : (none)
        attribs:
noproject
        projid : 2
        comment: ""
        users  : (none)
        groups : (none)
        attribs:
default
        projid : 3
        comment: ""
        users  : (none)
        groups : (none)
        attribs:
group.staff
        projid : 10
        comment: ""
        users  : (none)
        groups : (none)
        attribs:

 

3)使用projmod命令修改user.root的project.max-sem-ids和project.max-shm-ids值;

# projmod -sK "project.max-sem-ids=(priv,524288,deny)" user.root
# projmod -sK "project.max-shm-ids=(priv,524288,deny)" user.root

 

4)在使用 projects -l察看更新后的user.root的配置;

# projects -l user.root
user.root
        projid : 1
        comment: ""
        users  : (none)
        groups : (none)
        attribs: project.max-sem-ids=(priv, 524288,deny)
                 project.max-shm-ids=(priv, 524288,deny)

 

5)在/etc/project文件中应该也能看到;

# cat /etc/project
system:0::::
user.root:1::::project.max-sem-ids=(priv,512,deny);project.max-shm-ids=(priv,512,deny)
noproject:2::::
default:3::::
group.staff:10::::

 

6)登出root用户,之后再重新登入. 用prctl命令查看project.max-sem-ids和project.max-shm-ids值。

# prctl -n project.max-sem-ids -i process $$
process: 14678: -bash
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
project.max-sem-ids
        privileged        524288       -   deny                                 -
        system          16.8M     max   deny                                 -
 
# prctl -n project.max-shm-ids -i process $$
process: 14678: -bash
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
project.max-shm-ids
      privileged        524288       -   deny                                 -
        system          16.8M     max   deny 

 

3.在 Solaris 和 Linux 平台上,运行客户端或代理的 shell 对进程可以使用的文件描述符数量的限制不是很严格。在 Message Queue 中,客户端创建的每个连接或代理接受的每个连接都使用其中一个文件描述符。每个具有持久性消息的物理目的地也使用文件描述符。因此,文件描述符限制限定了代理或客户端可以具有的连接数。默认情况下,Solaris 最多可具有 256 个连接,Linux 最多可具有 1024 个连接。(在实践中,由于将文件描述符用于持久性,因此连接限制实际上低于此值。)iCV的某些服务需要的连接数高于此值,则必须提高将要执行客户端或代理的每个 shell 中的文件描述符限制。有三种方法修改此限制:

使用ulimit命令:ulimit –n65535。ulimit只能使当前shell及其子进程生效,一旦shell退出设置即失效;

使用2中提到的project(官方推荐此方法,但实际测试不能生效):

# projmod -sK "process.max-file-descriptor=(basic,65535,deny),(priv,65535,deny)" user.root;

 

在/etc/system文件中增加以下两个参数,然后重启系统。

set rlim_fd_cur=65535

set rlim_fd_max=65535

 

4.如需要使用iCentroView的关系数据库转储,需要安装相应关系数据库的客户端。Solaris 11默认预装了Mysql,这时需要将mysql客户端的库文件所在路径加入到LD_LIBRARY_PATH环境变量中,比如export LD_LIBRARY_PATH=/icv/executable:/usr/mysql/5.5/lib/sparcv9。需要注意的是,iCentroView加载的SQLAPI版本为64位,所以关系数据库客户端的库应该也使用对应的64位版本。需要注意的是,要使环境变量永久生效需要修改相应配置文件中的内容,比如为root用户添加或修改环境变量则须在/etc/profile文件中使用以上内容。