HOWTO: Install a NIM server PDF Print E-mail
User Rating: / 29
PoorBest 
Written by Michael Felt   

NIM installation scenarios

There are two basic scenarios for installing NIM servers. In this article ROOTvg.NET provides instrustions for the first scenario. In other articles on ROOTVG.NET there are instructions for updating NIM servers, in particular using SUMA:

  • Install AIX NIM from a CD without updating the nim resources to the latest levels (i.e. I only use DVD images I have in house)
  • Install from a DVD then use SUMA or Fix Central to update the system that will function as NIM server before creating the nim resources, especially before installing the nim spot and master filesets.

Key elements

  • Install AIX base system
  • Create a volume group for NIM resources
  • Create a mksysb file to be used later as nim resource
  • Complete AIX installation and add SSH support
  • Configure NIM master
  • Define Installation Resources
  • Define and Install NIM clients - hands free

Install AIX base system

Personally, I prefer installing a NIM server outside of a POWER system as a stand-alone unit - use older systems (at least POWER4 to support all versions of AIX) - but generally I see NIM servers being installed as a partition or LPAR of a POWER system. Install AIX via the console or the HMC supplied virtual console. When the installation completes and AIX reboots - just do the minimum: accept licenses. Do not set a root password, do not setup any network configuration information. Ideally, you will have have only one ethernet (ent0) interface configured into your partition.

Create a volume group for NIM resources

On a second disk I generally use the following naming scheme:
Volume Group: vgNim
Logical Volumes:
lgNim - jfs2log - 1 partition
lvtftpb    - jfs2    -  64 Mbyte as /tftpboot for when Nim spots are made
lvExp    - jfs2    -   64 Mbyte as /export (/export/nim resources)
lvMksb    - jfs2    -    4 Gbyte as /export/mksysb/6106 (i.e. AIX vers.)
lvoslevel - jfs2 -    4 Gbyte as /export/6106 (for lpp)
lvoslevels - jfs2 -   2 Gbyte as /export/6106/spot (for spot)

Many people just make a very large /export partition and never think to include /tftpboot.

 

Example

So, after the intial install of AIX and accepting the licenses, and BEFORE I enter any TCPIP information or root password I do the following:

login as root

Example script

#!/usr/bin/ksh
clear
echo "AIXTOOLS and ROOTVG.NET script to assist with NIM installation based on host's oslevel"
echo ==========
echo Choose a disk from the list below to create and configure NIM volume group
lspv
echo ==========
echo "Enter disk to create NIM volume group:\c"
read hdisk        
mkvg -y vgNim ${hdisk}
[[ $? -ne 0 ]] && echo mkvg failed, exiting && exit

mklv -t jfs2log -y lgNim vgNim 1
mklv -t jfs2 -y lvtftpb vgNim 64M
mklv -t jfs2 -y lvExp vgNim 64M
mklv -t jfs2 -y lvMksb vgNim 4G
OSLEVEL=`oslevel -s | cut -c 1-2,6-7`
mklv -t jfs2 -y lv${OSLEVEL} vgNim 4G
mklv -t jfs2 -y lv${OSLEVEL}s vgNim 2G

lsvg -l vgNim

# clear
# lspv
hdisk0          00f67207e26dbb8d                    rootvg          active
hdisk1          none                                None            
# mkvg -y vgNim hdisk1
0516-1254 mkvg: Changing the PVID in the ODM.
vgNim
# mklv -t jfs2log -y lgNim vgNim 1
lgNim
# mklv -t jfs2 -y lvtftpb vgNim 64M
lvtftpb
# mklv -t jfs2 -y lvExp vgNim 64M
lvExp
# mklv -t jfs2 -y lvMksb vgNim 4G
lvMksb
# OSLEVEL=`oslevel -s | cut -c 1-2,6-7`
# mklv -t jfs2 -y lv${OSLEVEL} vgNim 4G
lv6106 # mklv -t jfs2 -y lv${OSLEVEL}s vgNim 2G
lv6106s
Next before creating the filesystems, I logform (format the lgNim jfs2log). Then I create and mount the filesystems one by one.

#!/usr/bin/ksh
clear
echo "AIXTOOLS and ROOTVG.NET script to assist with NIM installation based on host's oslevel"
echo ==========
OSLEVEL=`oslevel -s | cut -c 1-2,6-7`
echo y | logform /dev/lgNim

crfs -v jfs2 -d lvtftpb -m /tftpboot -A yes -u nim
mount /tftpboot

crfs -v jfs2 -d lvExp -m /export -A yes -u nim  
mount /export

crfs -v jfs2 -d lvMksb -m /export/mksysb -A yes -u nim
mount /export/mksysb
mkdir /export/mksysb/${OSLEVEL}

crfs -v jfs2 -d lv${OSLEVEL} -m /export/${OSLEVEL} -A yes -u nim
mount /export/${OSLEVEL}

crfs -v jfs2 -d lv${OSLEVEL}s -m /export/${OSLEVEL}/spot -A yes -u nim
mount /export/${OSLEVEL}/spot

lsvg -l vgNim
# echo y | logform /dev/lgNim
# crfs -?
Usage: crfs -v Vfs {-g Volumegroup | -d Device} -m Mountpoint
        [-u Mountgroup] [-A {yes|no}] [-t {yes|no}] [-p {ro|rw}]
        [-l Logpartitions] [-n nodename] [-a Attribute=Value]
# crfs -v jfs2 -d lvtftpb -m /tftpboot -A yes -u nim
File system created successfully.
65328 kilobytes total disk space.
New File System size is 131072
# mount /tftpboot
# crfs -v jfs2 -d lvExp -m /export -A yes -u nim   
File system created successfully.
65328 kilobytes total disk space.
New File System size is 131072
# mount /export
# crfs -v jfs2 -d lvMksb -m /export/mksysb -A yes -u nim
File system created successfully.
4193972 kilobytes total disk space.
New File System size is 8388608
# mount /export/mksysb
# mkdir /export/mksysb/6106
# crfs -v jfs2 -d lv6106 -m /export/6106 -A yes -u nim
File system created successfully.
4193972 kilobytes total disk space.
New File System size is 8388608
# mount /export/6106                                   
# crfs -v jfs2 -d lv6106s -m /export/6106/spot -A yes -u nim
File system created successfully.
2096884 kilobytes total disk space.
New File System size is 4194304
# mount /export/6106/spot
# lsvg -l vgNim
vgNim:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
lgNim               jfs2log    1       1       1    open/syncd    N/A
lvtftpb             jfs2       2       2       1    open/syncd    /tftpboot
lvExp               jfs2       2       2       1    open/syncd    /export
lvMksb              jfs2       128     128     1    open/syncd    /export/mksysb
lv6106              jfs2       128     128     1    open/syncd    /export/6106
lv6106s             jfs2       64      64      1    open/syncd    /export/6106/spot



 
< Prev   Next >
Login
59 queries executed
1
SET sql_mode = 'MYSQL40'
2 SELECT folder, element, published, params FROM jos_mambots WHERE published >= 1 AND access <= 0 AND folder = 'system' ORDER BY ordering
3 SELECT template FROM jos_templates_menu WHERE client_id = 0 AND ( menuid = 0 OR menuid = 309 ) ORDER BY menuid DESC LIMIT 1
4 DELETE FROM jos_session WHERE ( ( time < '1548315184' ) AND guest = 0 AND gid > 0 ) OR ( ( time < '1548315184' ) AND guest = 1 AND userid = 0 )
5 SELECT COUNT(*) FROM jos_stats_agents WHERE agent = 'Unknown' AND type = 0
6 UPDATE jos_stats_agents SET hits = ( hits + 1 ) WHERE agent = 'Unknown' AND type = 0
7 SELECT COUNT(*) FROM jos_stats_agents WHERE agent = 'Unknown' AND type = 1
8 UPDATE jos_stats_agents SET hits = ( hits + 1 ) WHERE agent = 'Unknown' AND type = 1
9 SELECT COUNT(*) FROM jos_stats_agents WHERE agent = 'com' AND type = 2
10 UPDATE jos_stats_agents SET hits = ( hits + 1 ) WHERE agent = 'com' AND type = 2
11 SELECT * FROM jos_menu WHERE id = 309
12 SELECT a.*, u.name AS author, u.usertype, cc.name AS category, s.name AS section, g.name AS groups, s.published AS sec_pub, cc.published AS cat_pub, s.access AS sec_access, cc.access AS cat_access, s.id AS sec_id, cc.id as cat_id FROM jos_content AS a LEFT JOIN jos_categories AS cc ON cc.id = a.catid LEFT JOIN jos_sections AS s ON s.id = cc.section AND s.scope = 'content' LEFT JOIN jos_users AS u ON u.id = a.created_by LEFT JOIN jos_groups AS g ON a.access = g.id WHERE a.id = 431 AND ( a.state = 1 OR a.state = -1 ) AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2019-01-24 08:48' ) AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2019-01-24 08:48' ) AND a.access <= 0
13 SELECT a.id FROM jos_content AS a WHERE a.catid = 19 AND a.state = 1 AND a.access <= 0 AND ( a.state = 1 OR a.state = -1 ) AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2019-01-24 08:48' ) AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2019-01-24 08:48' ) ORDER BY a.created DESC
14 SELECT ROUND( v.rating_sum / v.rating_count ) AS rating, v.rating_count FROM jos_content AS a LEFT JOIN jos_content_rating AS v ON a.id = v.content_id WHERE a.id = 431
15 SELECT folder, element, published, params FROM jos_mambots WHERE access <= 0 AND folder = 'content' ORDER BY ordering
16 SELECT value FROM jos_bookmarks_prefs WHERE userid = '-1' AND category = 'params' AND name = 'urlkey'
17 SELECT value FROM jos_bookmarks_prefs WHERE userid = '-1' AND category = 'params' AND name = 'snapshotactiv'
18 SELECT value FROM jos_bookmarks_prefs WHERE userid = '-1' AND category = 'params' AND name = 'snapshotother'
19 SELECT id FROM jos_mambots WHERE element = 'mosbookmarks' AND folder = 'content'
20 SELECT * FROM jos_mambots WHERE id = '32'
21 SELECT name, value FROM jos_bookmarks_prefs WHERE userid = '-1' AND category = 'params' ORDER BY name
22 SELECT c.id, c.parent FROM jos_bookmarks_categories as c WHERE c.id = -1
23 SELECT * FROM jos_bookmarks_columns WHERE category='' AND custom='0'
24 SELECT * FROM jos_bookmarks_columns WHERE category='' ORDER BY ordering
25 SELECT * FROM jos_bookmarks_columns WHERE category='admin'
26 SELECT * FROM jos_bookmarks_columns WHERE category='admin' ORDER BY ordering
27 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
28 SELECT * FROM jos_mambots WHERE id = '27'
29 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
30 SELECT * FROM jos_mambots WHERE id = '27'
31 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
32 SELECT * FROM jos_mambots WHERE id = '27'
33 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
34 SELECT * FROM jos_mambots WHERE id = '27'
35 SELECT params FROM jos_mambots WHERE element = 'mosemailcloak' AND folder = 'content'
36 SELECT params FROM jos_mambots WHERE element = 'mospaging' AND folder = 'content'
37 SELECT a.* FROM jos_components AS a WHERE ( a.admin_menu_link = 'option=com_syndicate' OR a.admin_menu_link = 'option=com_syndicate&hidemainmenu=1' ) AND a.option = 'com_syndicate'
38 SELECT m.id FROM jos_modules AS m WHERE m.module = 'mod_rssfeed' AND m.published = 1
39 SELECT id, title, module, position, content, showtitle, params FROM jos_modules AS m INNER JOIN jos_modules_menu AS mm ON mm.moduleid = m.id WHERE m.published = 1 AND m.access <= 0 AND m.client_id != 1 AND ( mm.menuid = 0 OR mm.menuid = 309 ) ORDER BY ordering
40 SELECT id FROM jos_menu WHERE link = 'index.php?option=com_search' AND published = 1
41 SELECT m.*, sum(case when p.published=1 then 1 else 0 end) as cnt FROM jos_menu AS m LEFT JOIN jos_menu AS p ON p.parent = m.id WHERE m.menutype='rt_splitSuckerFish' AND m.published='1' AND m.access <= '0' GROUP BY m.id ORDER BY m.parent, m.ordering
42 SELECT m.* FROM jos_menu AS m WHERE menutype='rt_splitSuckerFish' AND m.published='1'
43 SELECT * FROM jos_banner WHERE showBanner=1
44 SELECT id FROM jos_mambots WHERE element = 'mosbookmarks' AND folder = 'content'
45 SELECT * FROM jos_mambots WHERE id = '32'
46 SELECT name, value FROM jos_bookmarks_prefs WHERE userid = '-1' AND category = 'params' ORDER BY name
47 SELECT c.id, c.parent FROM jos_bookmarks_categories as c WHERE c.id = -1
48 SELECT * FROM jos_bookmarks_columns WHERE category='' AND custom='0'
49 SELECT * FROM jos_bookmarks_columns WHERE category='' ORDER BY ordering
50 SELECT * FROM jos_bookmarks_columns WHERE category='admin'
51 SELECT * FROM jos_bookmarks_columns WHERE category='admin' ORDER BY ordering
52 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
53 SELECT * FROM jos_mambots WHERE id = '27'
54 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
55 SELECT * FROM jos_mambots WHERE id = '27'
56 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
57 SELECT * FROM jos_mambots WHERE id = '27'
58 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
59 SELECT * FROM jos_mambots WHERE id = '27'