1 | |
---|
2 | Please refer to the online GPFS FAQ at |
---|
3 | |
---|
4 | http://publib.boulder.ibm.com/infocenter/clresctr/topic/com.ibm.cluster.gpfs.doc/gpfs_faqs/gpfs_faqs.html |
---|
5 | |
---|
6 | for the latest information about GPFS updates, supported kernel levels, |
---|
7 | and kernel patches before building the portability layer. |
---|
8 | |
---|
9 | Linux kernel patches for GPFS can be obtained at |
---|
10 | |
---|
11 | http://sourceforge.net/tracker/?atid=719124&group_id=130828&func=browse |
---|
12 | |
---|
13 | which is the patches link for the project |
---|
14 | "General Parallel File System (GPFS)" on Source Forge; only Linux |
---|
15 | kernel patches are kept on the Source Forge site. |
---|
16 | |
---|
17 | You can send license inquiries to gpfs@us.ibm.com |
---|
18 | or, in writing, to: |
---|
19 | |
---|
20 | GPFS Product Manager |
---|
21 | International Business Machines Company |
---|
22 | Dept. LNLA Mail Station P963 |
---|
23 | 2455 South Road |
---|
24 | Poughkeepsie NY 12601-5400 |
---|
25 | United States of America |
---|
26 | |
---|
27 | |
---|
28 | To build the Linux portability interface for GPFS |
---|
29 | ------------------------------------------------- |
---|
30 | |
---|
31 | It is strongly suggested that you build the source at |
---|
32 | non root level. You will need to change the owner |
---|
33 | and group permissions accordingly in /usr/lpp/mmfs/src. |
---|
34 | |
---|
35 | When you build as a non root user it is also important |
---|
36 | that you have read access to the linux kernel header files |
---|
37 | on your machine. These headers are normally found in |
---|
38 | /usr/src/linux/include but may appear in a different |
---|
39 | place as enumerated below in step 3 section D. |
---|
40 | |
---|
41 | The simplest way to build the portability layer is to use |
---|
42 | the "Autoconfig" process to create the site.mcr file for you. |
---|
43 | |
---|
44 | 1) export SHARKCLONEROOT=/usr/lpp/mmfs/src |
---|
45 | 2) cd /usr/lpp/mmfs/src |
---|
46 | 3) make Autoconfig |
---|
47 | 4) make World |
---|
48 | 5) make InstallImages |
---|
49 | |
---|
50 | Alternatively, if you have a platform that requires |
---|
51 | customization, manual creation of the site.mcr file |
---|
52 | will be necessary as follows. |
---|
53 | |
---|
54 | 1) export SHARKCLONEROOT=/usr/lpp/mmfs/src |
---|
55 | 2) cd /usr/lpp/mmfs/src/config |
---|
56 | cp site.mcr.proto site.mcr |
---|
57 | |
---|
58 | 3) Edit and customize the site.mcr file. |
---|
59 | |
---|
60 | A) The default architecture is GPFS_ARCH_I386. Only modify the |
---|
61 | architecture choice if your platform is not Intel 32-bit based (IA32). |
---|
62 | |
---|
63 | B) Modify the Linux distribution choice according to the software |
---|
64 | distribution your machine runs. |
---|
65 | |
---|
66 | C) Modify the Linux distribution level according to the level of the |
---|
67 | software distribution your machine runs. |
---|
68 | |
---|
69 | D) Modify the LINUX_KERNEL_VERSION according to the Linux kernel |
---|
70 | level you are using with your software distribution. |
---|
71 | |
---|
72 | E) Note also that the kernel header file search path, |
---|
73 | KERNEL_HEADER_DIR, is by default /lib/modules/`uname -r`/build/include |
---|
74 | |
---|
75 | Customers who have their kernel source headers in a different |
---|
76 | directory will need to modify KERNEL_HEADER_DIR. For instance |
---|
77 | another common location for the kernel headers is /usr/src/linux/include. |
---|
78 | |
---|
79 | YOU MUST HAVE READ ACCESS TO THESE HEADERS! |
---|
80 | |
---|
81 | F) Uncomment any desired Linux kernel patches listed under |
---|
82 | LINUX_PATCH_DEFINES. |
---|
83 | |
---|
84 | The kernel will also need to be rebuilt and installed with |
---|
85 | the appropriate patches, which can be obtained from |
---|
86 | http://sourceforge.net/tracker/?atid=719124&group_id=130828&func=browse. |
---|
87 | |
---|
88 | The online GPFS FAQ has detailed information on each patch. |
---|
89 | |
---|
90 | 4) If no LINUX_PATCH_DEFINES are applied above and the kernel is |
---|
91 | not recompiled, some distributions will still require more |
---|
92 | preparation of kernel headers. |
---|
93 | |
---|
94 | A) On SuSE Enterprise Server 8 PowerPC you will need to: |
---|
95 | |
---|
96 | Install the kernel source |
---|
97 | |
---|
98 | cd /lib/modules/`uname -r`/build |
---|
99 | sh make_ppc64.sh distclean |
---|
100 | sh make_ppc64.sh clean |
---|
101 | sh make_ppc64.sh mrproper |
---|
102 | sh make_ppc64.sh cloneconfig |
---|
103 | sh make_ppc64.sh dep |
---|
104 | |
---|
105 | B) On SuSE Enterprise Server 8 AMD64 you will need to: |
---|
106 | |
---|
107 | Install the kernel source |
---|
108 | |
---|
109 | cd /lib/modules/`uname -r`/build |
---|
110 | make distclean |
---|
111 | make clean |
---|
112 | make mrproper |
---|
113 | make cloneconfig |
---|
114 | make dep |
---|
115 | |
---|
116 | C) On SuSE Enterprise Server 9 all platforms you will need to: |
---|
117 | |
---|
118 | Install the kernel source |
---|
119 | |
---|
120 | The default header file path must be changed. KERNEL_HEADER_DIR can |
---|
121 | instead be set to /lib/modules/`uname -r`/source/include |
---|
122 | |
---|
123 | 5) cd /usr/lpp/mmfs/src |
---|
124 | |
---|
125 | 6) make World |
---|
126 | |
---|
127 | All of the kernel modules and libraries reside in the "bin" |
---|
128 | subdirectory after the build. |
---|
129 | |
---|
130 | |
---|
131 | To install the Linux portability interface for GPFS into /usr/lpp/mmfs/bin |
---|
132 | -------------------------------------------------------------------------- |
---|
133 | |
---|
134 | This step installs the binaries for the portability interface. |
---|
135 | |
---|
136 | 1) su |
---|
137 | |
---|
138 | 2) make InstallImages |
---|
139 | |
---|
140 | The files mmfslinux, lxtrace, tracedev, and dumpconv will be |
---|
141 | installed in /usr/lpp/mmfs/bin. If the system is using a 2.6 kernel, |
---|
142 | there will be an additional mmfs26 binary. If this kernel configuration |
---|
143 | applies to other machines in the cluster, you may then copy |
---|
144 | these binaries to those machines, or iteratively perform the |
---|
145 | above compile and install steps on each machine. |
---|
146 | |
---|
147 | Additional Notes |
---|
148 | ---------------- |
---|
149 | |
---|
150 | Most of the source code headers are in the "ibm-kxi" and "ibm-linux" |
---|
151 | directories, while the source code is in the "gpl-linux" directory. |
---|
152 | |
---|
153 | The "config" directory provides the configuration information for |
---|
154 | the build (site.mcr) and the "misc" directory handles some items |
---|
155 | that allow us to reuse our standard development Imakefiles. |
---|
156 | |
---|
157 | |
---|
158 | Troubleshooting build problems |
---|
159 | ------------------------------ |
---|
160 | Most commonly encountered build problems are caused by an incorrect setting |
---|
161 | of KERNEL_HEADER_DIR, or an incorrect setup of the kernel source tree. GPFS |
---|
162 | requires a full set of kernel headers in order to build; a subset of kernel |
---|
163 | headers provided to build "typical" kernel modules may be insufficient and |
---|
164 | could lead to build breaks. Specifically, on SuSE Enterprise Server 9 and 10, |
---|
165 | the directory pointed to by the /lib/modules/`uname -r`/build symlink contains |
---|
166 | only a subset of kernel headers, while the directory pointed to by |
---|
167 | /lib/modules/`uname -r`/source contains a full source tree. |
---|
168 | |
---|
169 | Some files in the full source tree, most notably include/linux/version.h and |
---|
170 | include/linux/autoconf.h, are often configured dynamically by an external shell |
---|
171 | script (e.g. /etc/init.d/running-kernel on SuSE Enterprise Server), which |
---|
172 | copies a set of files into the source tree to make it match the currently |
---|
173 | booted kernel (that way one can boot different kernels but have the same |
---|
174 | source tree always configured to match it). If the kernel source tree is |
---|
175 | updated but the shell reconfiguration script hasn't run (it usually runs |
---|
176 | during the boot sequence), or the script didn't work correctly, the kernel |
---|
177 | source tree may not be configured properly. |
---|
178 | |
---|
179 | NOTE: On SuSE Enterprise Server 10 for PowerPC, /etc/init.d/running-kernel |
---|
180 | that ships with the GA level of distribution (kernel-source-2.6.16.21-0.8) |
---|
181 | contains a bug that results in the wrong set of files being copied to the |
---|
182 | kernel source tree. This bug will be fixed with SLES10 SP1. If the official |
---|
183 | fix is unavailable, the following change should also address the problem: |
---|
184 | |
---|
185 | --- running-kernel.orig 2006-10-06 14:54:36.000000000 -0500 |
---|
186 | +++ /etc/init.d/running-kernel 2006-10-06 14:59:58.000000000 -0500 |
---|
187 | @@ -53,6 +53,7 @@ |
---|
188 | arm*|sa110) arch=arm ;; |
---|
189 | s390x) arch=s390 ;; |
---|
190 | parisc64) arch=parisc ;; |
---|
191 | + ppc64) arch=powerpc ;; |
---|
192 | esac |
---|
193 | # FIXME: How to handle uml? |
---|
194 | |
---|