AppNote: Multiple instances of iFolder on NetWare Configuration Report
Novell Cool Solutions: AppNote
By Hans-Robert Vermeulen
Reader Rating
from 6 ratings
|
Digg This -
Slashdot This
Posted: 19 Nov 2003 |
Hans-Robert Vermeulen
Consultant
Novell, Inc.
Hvermeulen@Novell.com
Contents
- Introduction
- Why do we need multiple instances?
- Configuration
- How to create Separate instances of iFolder
- Creating the Volumes
- Copying the iFolder data and server files
- Changing the Apache configuration files
- Configuring the iFolder servers
- Cluster configuration
Introduction
This AppNote will go into detail on how run multiple instances of iFolder on the same NetWare server. People running Novell Cluster Services (NCS) and people with large deployments of iFolder will benefit from this configuration.
With the default iFolder configuration, only one instance is allowed to run on any given server. This aproach makes it difficult to find the right balance between the maximum volume size and the amount of hardware (servers) needed to deploy iFolder in medium to large or clustered configurations.
With iFolder 2.1 the configuration has changed so that it now uses the main apache configuration to load iFolder. This means that only one iFolder instance can run at any given time.
Why do we need multiple instances?
iFolder itself is not an extremely resource intensive product. Therefore, companies are more likely to hit the boundaries on their maximum volume size than to run into performance issues with the iFolder server itself. An iFolder server is limited to a single volume for file storage. The maximum size of a volume is an important factor in disaster planning. Having a big volume (>300Gb) is not a problem for NetWare or iFolder, but the amount of time needed to restore such a volume migth not meet Service Level Agreements. The default option would be to buy additional servers to function as separate iFolder servers, just to keep the volume size within limits.
In a cluster even smaller iFolder deployments can be a challenge. If a company have a two-node cluster, they will be limited to one single iFolder server / instance. With the default configuration, iFolder is unable to fail over to the other server if another iFolder instance is already running there.
Configuration
First we have to determine the version of iFolder which will be installed . In this appnote, we will work with iFolder 1.01 and iFolder 2.1. The differences in configuration are minor. Where applicable, we will refer to the iFolder version.
Main configuration differences between iFolder 1.01 and iFolder 2.1
iFolder 1.01 uses the following configuration files:
- SYS:\APACHE\IFOLDER\SERVER \StartiFolder.ncf
- SYS:\APACHE\IFOLDER\SERVER \StopiFolder.ncf
- SYS:\APACHE\IFOLDER\SERVER \HTTPD_ifolder_nw.conf
iFolder 2.1 uses the following configuration files:
- SYS:\SYSTEM\StartiFolder.ncf
- SYS:\SYSTEM\StopiFolder.ncf
- SYS:\APACHE\CONF\ADMINSERV.conf
- SYS:\APACHE\IFOLDER\SERVER \HTTPD_ifolder_nw.conf
iFolder 1.01 is install per default with NetWare 6. After the installation, startifolder.ncf contains the following line:
LOAD ADDRESS SPACE = IFOLDER APACHE -f SYS:APACHE\IFOLDER\SERVER\HTTPD.CONF
By default, iFolder 1.01 loads iFolder in it's own address space. It also loads an instance of Apache with a iFolder specfic configuration file.
iFolder 2.1 is a separate product. After installation, the startifolder.ncf contains the following lines:
############################################################################ # Example Load Commands # # this is an example of how to load iFolder in the iFolder Address Space ##LOAD ADDRESS SPACE = IFOLDER APACHE -f SYS:APACHE\IFOLDER\SERVER\HTTPD.CONF # # this is an example of how to load iFolder in without other modules ##LOAD APACHE -f SYS:APACHE\IFOLDER\SERVER\HTTPD.CONF # # this is the default load command which load iFolder in the OS Address Space # and loads other configured modules in ADMINSERV.CONF. Note that this is # the same as running NVXADMUP on NetWare 6.0 ##LOAD APACHE -f SYS:APACHE\CONF\ADMINSERV.CONF LOAD APACHE -f SYS:APACHE\CONF\ADMINSERV.CONF
The main difference between the two product versions is the address space iFolder is loaded in and the configuration files used.
How to create Separate instances of iFolder
For this two iFolder instances / servers named iFolderA and iFolderB will be used.
Creating the Volumes
The first step will be to create the corresponding volumes for the iFolder user data. After this, we will move the SYS:\APACHE\IFOLDER directory to the newly created volume. From that point on we can change the configuration.
- Make sure iFolder is installed and running correctly. Verify that iFolder is loaded by typing "Modules ifolder" or "M ifolder" at the server console. You will see if iFolder is loaded and in what address space it is loaded, as shown in the figures below
- Create an iFolderA and iFolderB volume.


Copying the iFolder data and server files
- Create an Apache folder on the iFolderA and iFolderB volumes.
- Copy the SYS:\APACHE\IFOLDER directory to the Apache folder on the iFolderA and iFolderB volume.
- Copy the iFolderServerRoot, which is where user data is stored, to the iFolderA and iFolderB volumes. The default installation path is SYS:\iFolder
- Copy startifolder.ncf and stopifolder.ncf files to the iFolderA and iFolderB volumes, and rename the original files to keep iFolder from staring during boot.
- For iFolder 1.01 these files will need to be copied from the SYS:\APACHE\IFOLDER\SERVER directory to the APACHE\IFOLDER\SERVER directory on the iFolder volumes.
- For iFolder 2.1 these files will need to be copied from the SYS:\SYSTEM directory to the APACHE\IFOLDER\SERVER directory on the iFolder volumes.
- Edit the Autoexec.ncf and replace the original iFolder startup commands with:
- With iFolder 2.1, edit the SYS:APACHE\CONF\ADMINSERV.CONF file and remark the line "include SYS:\Apache\iFolder\Server\httpd_ifolder_nw.conf" at the end of the configuration file.
- Add secondary addresses to the NetWare server to be used with iFolderA and iFolderB.
You can use the following command to add the secondary address to the server.
"Add Secondary ipaddress 192.168.2.161"
Remember to put the command in your AUTOEXEC.NCF. - 192.168.2.160 for the NetWare / LDAP server
- 192.168.2.161 for iFolderA
- 192.168.2.162 for iFolderB
- Next, edit the startifolder.ncf.
On the iFolderA volume, it should read:
LOAD ADDRESS SPACE = IFOLDERA APACHE -f IFOLDERA:APACHE\IFOLDER\SERVER\HTTPD.CONF
(The above-mentioned is one line)
Save this file as STARTIFOLDERA.NCF - Change the stopifolder.ncf file:
On the iFolderA volume, it should read:
UNLOAD ADDRESS SPACE = IFOLDERA APACHE
#UNLOAD APACHE
Save this file as STOPIFOLDERA.NCF
Note: All Apache modules will remain on the SYS volume. However, I do like to keep the Apache in the path of the iFolder server to minimize configuration changes and to keep the iFolder program and user data clearly separated.
Note: If this is not a newly installed iFolder system, you will need to copy the user data to one of the volumes and create the iFolder directory manually.
SEARCH ADD ifolderA:\apache\iFolder\Server
STARTIFOLDERA
SEARCH ADD ifolderB:\apache\iFolder\Server
STARTIFOLDERB
Note: iFolder 2.1 will be started by the NVXADMUP command. You do not have to replace anything.

With the command "display secondary ipaddress" you can see all currently assigned secondary addresses.

As an example we will be using the following addresses:
On the iFolderB volume, it should read:
LOAD ADDRESS SPACE = IFOLDERB APACHE -f IFOLDERB:APACHE\IFOLDER\SERVER\HTTPD.CONF
(The above-mentioned is one line)
Save this file as STARTIFOLDERA.NCF
On the iFolderB volume, it should read:
UNLOAD ADDRESS SPACE = IFOLDERB APACHE
#UNLOAD APACHE
Save this file as STOPIFOLDERB.NCF
Note: we will remark the unload apache line (only present with iFolder 2.1) because we will only load iFolder in a separate address space and we do not want Apache to be unload each time we need to stop iFolder. This would otherwise cause iManager and other programs depending on Apache to be unloaded as well.
Changing the Apache configuration files
After we have prepared the server, we will have to change the configuration files used with Apache to reflect the correct path to the iFolder server and user files, and to change the IP Address used.
Note: Line numbers only apply if the files have not been modified by hand or by another installed program.
Changing the iFolder 1.01 configuration files
IFOLDERA:APACHE\IFOLDER\SERVER\HTTPD.CONF for iFolder 1.01
| Line | Original value | New value |
| 151 | Listen 192.168.2.160:80 | Listen 192.168.2.161:80 |
| 234 | ServerName iFolder | ServerName iFolderA |
| 920 | SecureListen 192.168.2.160:443 "SSL CertificateIP" | SecureListen 192.168.2.161:443 "SSL CertificateIP" |
| 923 | Include SYS:\apache\iFolder\Server\ httpd_additions_nw.conf | include IFOLDERA:\apache\iFolder\Server\ httpd_additions_nw.conf |
IFOLDERB:APACHE\IFOLDER\SERVER\HTTPD.CONF for iFolder 1.01
| Line | Original value | New value |
| 151 | Listen 192.168.2.160:80 | Listen 192.168.2.162:80 |
| 234 | ServerName iFolder | ServerName iFolderB |
| 920 | SecureListen 192.168.2.160:443 "SSL CertificateIP" | SecureListen 192.168.2.162:443 "SSL CertificateIP" |
| 923 | Include SYS:\apache\iFolder\Server\ httpd_additions_nw.conf | include IFOLDERB:\apache\iFolder\Server\ httpd_additions_nw.conf |
IFOLDERA:\apache\iFolder\Server\httpd_additions_nw.conf for iFolder 1.01
| Line | Original value | New value |
| 9 | <VirtualHost 192.168.2.160:80> | <VirtualHost 192.168.2.161:80> |
| 11 | ServerName iFolder | ServerName iFolderA |
| 13 | DocumentRoot "SYS:\apache\iFolder\DocumentRoot" | DocumentRoot "IFOLDERA:\apache\iFolder\DocumentRoot" |
| 15 | <Directory "SYS:\apache\iFolder\DocumentRoot"> | <Directory "IFOLDERA:\apache\iFolder\DocumentRoot"> |
| 39 | LdapRootCert "SYS:\apache\iFolder\server\RootCert.der" | LdapRootCert "IFOLDERA:\apache\iFolder\server\RootCert.der" |
| 55 | iFolderServerRoot SYS:\iFolder | iFolderServerRoot IFOLDERA:\iFolder |
| 78 | <VirtualHost 192.168.2.160:443> | <VirtualHost 192.168.2.161:443> |
| 80 | ServerName iFolder | ServerName iFolderA |
| 82 | DocumentRoot "SYS:\apache\iFolder\DocumentRoot" | DocumentRoot "IFOLDERA:\apache\iFolder\DocumentRoot" |
| 84 | <Directory "SYS:\apache\iFolder\DocumentRoot"> | <Directory "IFOLDERA:\apache\iFolder\DocumentRoot"> |
| 108 | LdapRootCert "SYS:\apache\iFolder\server\RootCert.der" | LdapRootCert "IFOLDERA:\apache\iFolder\server\RootCert.der" |
| 124 | iFolderServerRoot SYS:\iFolder | iFolderServerRoot IFOLDERA:\iFolder |
IFOLDERB:\apache\iFolder\Server\httpd_additions_nw.conf for iFolder 1.01
| Line | Original value | New value |
| 9 | <VirtualHost 192.168.2.160:80> | <VirtualHost 192.168.2.162:80> |
| 11 | ServerName iFolder | ServerName iFolderB |
| 13 | DocumentRoot "SYS:\apache\iFolder\DocumentRoot" | DocumentRoot "IFOLDERB:\apache\iFolder\DocumentRoot" |
| 15 | <Directory "SYS:\apache\iFolder\DocumentRoot"> | <Directory "IFOLDERB:\apache\iFolder\DocumentRoot"> |
| 39 | LdapRootCert "SYS:\apache\iFolder\server\RootCert.der" | LdapRootCert "LdapRootCert "IFOLDERB:\apache\iFolder\server\RootCert.der" |
| 55 | iFolderServerRoot SYS:\iFolder | iFolderServerRoot IFOLDERB:\iFolder |
| 78 | <VirtualHost 192.168.2.160:443> | <VirtualHost 192.168.2.162:443> |
| 80 | ServerName iFolder | ServerName iFolderB |
| 82 | DocumentRoot "SYS:\apache\iFolder\DocumentRoot" | DocumentRoot "IFOLDERB:\apache\iFolder\DocumentRoot" |
| 84 | <Directory "SYS:\apache\iFolder\DocumentRoot"> | <Directory "IFOLDERB:\apache\iFolder\DocumentRoot"> |
| 108 | LdapRootCert "SYS:\apache\iFolder\server\RootCert.der" | LdapRootCert "IFOLDERB:\apache\iFolder\server\RootCert.der" |
| 124 | iFolderServerRoot SYS:\iFolder | iFolderServerRoot IFOLDERB:\iFolder |
Changing the iFolder 2.1 configuration files
IFOLDERA:APACHE\IFOLDER\SERVER\HTTPD.CONF for iFolder 2.1
| Line | Original value | New value |
| 148 | Listen 80 | Listen Listen 192.168.2.161:80 |
| 231 | ServerName iFolder | ServerName iFolderA |
| 931 | SecureListen 443 "SSL CertificateIP" | SecureListen 192.168.2.161:443 "SSL CertificateIP" |
| 934 | include SYS:\apache\iFolder\Server\ httpd_additions_nw.conf | include IFOLDERA:\apache\iFolder\Server\ httpd_additions_nw.conf |
IFOLDERB:APACHE\IFOLDER\SERVER\HTTPD.CONF for iFolder 2.1
| Line | Original value | New value |
| 148 | Listen 80 | Listen 192.168.2.162:80 |
| 231 | ServerName iFolder | ServerName iFolderB |
| 931 | SecureListen 443 "SSL CertificateIP" | SecureListen 192.168.2.162:443 "SSL CertificateIP" |
| 934 | include SYS:\apache\iFolder\Server\ httpd_additions_nw.conf | include IFOLDERB:\apache\iFolder\Server\ httpd_additions_nw.conf |
IFOLDERA:\apache\iFolder\Server\httpd_additions_nw.conf for iFolder 2.1
| Line | Original value | New value |
| 5 | Alias /iFolder "SYS:/apache/iFolder/DocumentRoot" | Alias /iFolder "IFOLDERA:/apache/iFolder/DocumentRoot" |
| 6 | Alias /update "SYS:/apache/iFolder/DocumentRoot/update" | Alias /update "IFOLDERA:/apache/iFolder/DocumentRoot/update" |
| 8 | iFolderApplicationRoot "SYS:\apache\iFolder\Server" | iFolderApplicationRoot "IFOLDERA:\apache\iFolder\Server" |
| 10 | <Directory "SYS:/apache/iFolder/DocumentRoot"> | <Directory "IFOLDERA:/apache/iFolder/DocumentRoot"> |
| 46 | iFolderServerRoot SYS:\iFolder | iFolderServerRoot IFOLDERA:\iFolder |
| 47 | iFolderUserRoot SYS:\iFolder | iFolderUserRoot IFOLDERA:\iFolder |
| 76 | iFolderServerDNSorIP 192.168.2.160 | iFolderServerDNSorIP 192.168.2.161 |
| 77 | iFolderUserServerDNSorIP 192.168.2.160 | iFolderUserServerDNSorIP 192.168.2.161 |
IFOLDERB:\apache\iFolder\Server\httpd_additions_nw.conf for iFolder 2.1
| Line | Original value | New value |
| 5 | Alias /iFolder "SYS:/apache/iFolder/DocumentRoot" | Alias /iFolder "IFOLDERB:/apache/iFolder/DocumentRoot" |
| 6 | Alias /update "SYS:/apache/iFolder/DocumentRoot/update" | Alias /update "IFOLDERB:/apache/iFolder/DocumentRoot/update" |
| 8 | iFolderApplicationRoot "SYS:\apache\iFolder\Server" | iFolderApplicationRoot "IFOLDERB:\apache\iFolder\Server" |
| 10 | <Directory "SYS:/apache/iFolder/DocumentRoot"> | <Directory "IFOLDERB:/apache/iFolder/DocumentRoot"> |
| 46 | iFolderServerRoot SYS:\iFolder | iFolderServerRoot IFOLDERB:\iFolder |
| 47 | iFolderUserRoot SYS:\iFolder | iFolderUserRoot IFOLDERB:\iFolder |
| 76 | iFolderServerDNSorIP 192.168.2.160 | iFolderServerDNSorIP 192.168.2.162 |
| 77 | iFolderUserServerDNSorIP 192.168.2.160 | iFolderUserServerDNSorIP 192.168.2.162 |
Configuring the iFolder servers
Checking the iFolder instances
If everything has been correctly changed reboot the server. After the reboot you can check if both iFolder instances have been correctly loaded by issuing the following commands:
- "M ifolder" Which will list all iFolder instances and report their address space:
- "M Apache" Which will list all Apache instances and report their address space: Note you should see three apache modules loaded.



If everything looks good, you should be able to access the iFolder pages on both servers by going to http://iFolderA/iFolder and http://iFolderB/iFolder pages.
Configuring iFolder
iFolder 1.01 does not have the capabilities to combine multiple iFolder servers in a Transparent iFolder Server Pool as iFolder 2.1 does. Therefore, iFolder 1.01 will need to be treated as different systems, whereas iFolder 2.1 can run multiple iFolder servers in the same iFolder system. The next section will therefore handle the iFolder 2.1 configuration.
Go to the https://iFolderA/iFolderServer/Admin page and click on the "Global Settings" icon.

Log in as the iFolder administrator. If this is a new installation, iFolder will now create the necessary iFolder objects and schema extensions. The following screen will appear:

Here you will be able to configure the default settings for the iFolder server, LDAP settings, etc.
Note: For this appnote we will focus on configuring the second iFolder server.
Click on the iFolder Servers tab. The following screen will appear.

Click on the "Add" button

Fill in the fields as follows according to the table below and click Add.
| Item | Value |
| iFolder Server Name | iFolder_server02 |
| Public Host DNS or IP Port Secure Port |
192.168.2.162 80 443 |
The two configured iFolder servers can now be configured independently and users can be added.

Cluster configuration
To configure iFolder in a cluster configuration, the following changes will have to be made to the single server configuration:
- The iFolder volumes will have to be clustered volumes with the IP addresses of the iFolder servers
- The "add secondary ipaddress" statements must not be inserted into the Autoexec.ncf files
- The "Search Add" lines will have to be added to each cluster volume load script. The Cluster scripts should look like this:
Load Script
nss /poolactivate=IFOLDERA
mount IFOLDERA VOLID=254
CLUSTER CVSBIND ADD CLUSTER-IFOLDERA-VS 192.168.2.161
NUDP ADD CLUSTER-IFOLDERA-VS 192.168.2.161
add secondary ipaddress 192.168.2.161
Unload Script
del secondary ipaddress 192.168.2.161
CLUSTER CVSBIND DEL CLUSTER-IFOLDERA-VS 192.168.2.161
NUDP DEL CLUSTER-IFOLDERA-VS 192.168.2.161
nss /pooldeactivate=IFOLDERA /overridetype=question
Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com
