[lustre-discuss] Compiling lustre-2.10.6

YangSheng kmlist at 163.com
Tue Mar 12 10:02:03 PDT 2019


Hi, Hsieh,

You can port ldiskfs patch(ldiskfs//kernel_patches/patches/rhel6.3/ext4-export-64bit-name-hash.patch) to fix this issue. This patch has been landed to RHEL. But looks like Debian not.

Thanks,
YangSheng

> 在 2019年3月13日,上午12:36,Tung-Han Hsieh <thhsieh at twcp1.phys.ntu.edu.tw> 写道:
> 
> 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-bounces at lists.lustre.org> on behalf of Tung-Han Hsieh <thhsieh at twcp1.phys.ntu.edu.tw>
>> Sent: Tuesday, March 12, 2019 9:22:57 AM
>> To: lustre-discuss at 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 at lists.lustre.org
>> http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org
> _______________________________________________
> lustre-discuss mailing list
> lustre-discuss at lists.lustre.org
> http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org




More information about the lustre-discuss mailing list