Dear Farrell, Thank you very much for your response. Unfortunately, the wiki does not cover our special environment.
We need to build Lustre Master (i.e., to handle MDS and OSS) on a Debian Linux 8.X/9.X operating system, with LDSIKFS as the backend for MDT and OST. This is because we already have a lot of OSS with a lot of data. They were upgraded from Lustre-1.8.8 to Lustre-2.5.3. These servers are all installed Debian 8.11 Linux system. We just want to keep them running smoothly to provide a stable computing environment. I saw that the Lustre Master with LDISKFS is tightly bond to RHEL 6.4 or 7.3. It is quite unfortunate not our case. So we have to find some non-standard way to build it for our system. >From Lustre-1.6.X, 1.8.X, and up to 2.5.X, we got the source code of Linux kernel from SuSE, patch it, and then build lustre source. For example, for 2.5.X, we get the following Linux kernel from sele11sp3: linux-3.0.101-138.gcdbe806 and patch it via the following commands: cd linux-3.0.101-138.gcdbe806 ln -s ../lustre-2.5.X/lustre/kernel_patches/series/3.0-sles11sp3.series series ln -s ../lustre-2.5.X/lustre/kernel_patches/patches patches quilt push -av Then we build Linux kernel, and build Lustre with the following instructions: cd lustre-2.5.X ./configure --prefix=/opt/lustre --with-linux=/usr/src/linux-3.0.101-138.gcdbe806 --with-o2ib=no make make install These are standard methods we found in the Lustre-1.8.X manuals. It works before, and the resulting system ran without problem for a long time. So for Lustre-2.10.X, we want to try similar method. Now we encountered the compiling errors of LDISKFS_HTREE_EOF_32BIT and LDISKFS_HTREE_EOF_64BIT not defined. I guess that these symbols are defined somewhere in RHEL systems, but unfortunately not available in other Linux distributions. I searched the entire source code of lustre-2.10.6, including all the patch files coming with the source code, there is no definition of these two symbols. So maybe I should ask what are the definition of these symbols ? We could just add their definitions into the header file "ldiskfs/ldiskfs.h" to complete the compilation. ps. In Debian Linux system, we already successfully compiled Lustre-2.10.5 with ZFS backend. It works very nice in one of our clusters. However, this time we need Lustre-2.10.X with LDISKFS backend, because there are a lot of OSTs which are formatted with LDISKFS. The total size of data is more than 50TB which is impossible to back it up and reformat. Thanks very much. T.H.Hsieh On Tue, Mar 12, 2019 at 03:55:13PM +0000, Patrick Farrell wrote: > Hsieh, > > > We have instructions for compiling from source here on our Wiki: > > https://wiki.whamcloud.com/display/PUB/Building+Lustre+from+Source > > > Are you following those? If not, I'd suggest it - Your problem looks likely > to be an error in the build process. > > > We also have prebuilt 2.10.6 packages for many platforms: > https://downloads.whamcloud.com/public/lustre/ > > > - Patrick > > > > ________________________________ > From: lustre-discuss <lustre-discuss-boun...@lists.lustre.org> on behalf of > Tung-Han Hsieh <thhs...@twcp1.phys.ntu.edu.tw> > Sent: Tuesday, March 12, 2019 9:22:57 AM > To: lustre-discuss@lists.lustre.org > Subject: [lustre-discuss] Compiling lustre-2.10.6 > > Dear All, > > I am trying to compile lustre-2.10.6 from source code. During > compilation, there are undefined symbols: > > ========================================================================== > CC [M] > /home/thhsieh/lustre/L-2.10.6/lustre-2.10.6/lustre/osd-ldiskfs/osd_handler.o > In file included from > /home/thhsieh/lustre/L-2.10.6/lustre-2.10.6/lustre/osd-ldiskfs/osd_handler.c:72:0: > /home/thhsieh/lustre/L-2.10.6/lustre-2.10.6/lustre/osd-ldiskfs/osd_internal.h: > In function 'ldiskfs_get_htree_eof': > /home/thhsieh/lustre/L-2.10.6/lustre-2.10.6/lustre/osd-ldiskfs/osd_internal.h:1254:10: > error: 'LDISKFS_HTREE_EOF_32BIT' undeclared (first use in this function) > return LDISKFS_HTREE_EOF_32BIT; > ^ > /home/thhsieh/lustre/L-2.10.6/lustre-2.10.6/lustre/osd-ldiskfs/osd_internal.h:1254:10: > note: each undeclared identifier is reported only once for each function it > appears in > /home/thhsieh/lustre/L-2.10.6/lustre-2.10.6/lustre/osd-ldiskfs/osd_internal.h:1256:10: > error: 'LDISKFS_HTREE_EOF_64BIT' undeclared (first use in this function) > return LDISKFS_HTREE_EOF_64BIT; > ^ > /home/thhsieh/lustre/L-2.10.6/lustre-2.10.6/lustre/osd-ldiskfs/osd_handler.c: > In function 'osd_check_lmv': > /home/thhsieh/lustre/L-2.10.6/lustre-2.10.6/lustre/osd-ldiskfs/osd_handler.c:968:19: > error: 'LDISKFS_HTREE_EOF_64BIT' undeclared (first use in this function) > filp->f_pos != LDISKFS_HTREE_EOF_64BIT); > ^ > In file included from > /home/thhsieh/lustre/L-2.10.6/lustre-2.10.6/lustre/osd-ldiskfs/osd_handler.c:72:0: > /home/thhsieh/lustre/L-2.10.6/lustre-2.10.6/lustre/osd-ldiskfs/osd_internal.h: > In function 'ldiskfs_get_htree_eof': > /home/thhsieh/lustre/L-2.10.6/lustre-2.10.6/lustre/osd-ldiskfs/osd_internal.h:1257:1: > error: control reaches end of non-void function [-Werror=return-type] > } > ^ > cc1: all warnings being treated as errors > scripts/Makefile.build:321: recipe for target > '/home/thhsieh/lustre/L-2.10.6/lustre-2.10.6/lustre/osd-ldiskfs/osd_handler.o' > failed > ========================================================================== > > I searched the source code, only find the definition of LDISKFS_HTREE_EOF > in ldiskfs/ldiskfs.h: > > #define LDISKFS_HTREE_EOF 0x7fffffff > > but cannot find the definition of LDISKFS_HTREE_EOF_32BIT and > LDISKFS_HTREE_EOF_64BIT. Could anyone tell me how to fix this problem ? > > Thanks very much. > > T.H.Hsieh > _______________________________________________ > lustre-discuss mailing list > lustre-discuss@lists.lustre.org > http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org _______________________________________________ lustre-discuss mailing list lustre-discuss@lists.lustre.org http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org