I built the x86-32 RPM package for HLFS. You can download it from:
Building HLFS was a real difficult task once. Since we have RPM packages, everything under RedHat similar distribution become easier. Enjoy it. Below is the source code of hlfs.spec.
%define version 1.0
Name: hlfs
Version: %{version}
Release: 1
Summary: A distribuited and log-structured file system based on HDFS.
Group: Development/Libraries
License: GPLv2
Source0: hlfs-%{version}.tar.gz
Buildroot: /tmp/hlfs
#BuildRequires:
Requires: glib2-devel >= 2.0
Requires: log4c-devel >= 1.2.3
Requires: snappy-devel >= 1.1.0
Requires: java-1.8.0-openjdk-devel >= 1.8.0.0
Requires: hadoop-0.20-libhdfs >= 0.20.2
%description
HLFS(actually, Block level Storage System seems more proper than File System)
is a distributed VM image storage system for ECMS,which provides highly availab-
le block level storage volumes that can be attached to XEN virtual machines by
its tapdisk driver.Similar project related to KVM is sheepdog,but they are in
different architectures.
Compared with sheepdog, HLFS has greater scalability and reliability than sheep-
dog by now,as we are on the shoulder of hadoop distribute file system (HDFS).Me-
anwhile,HLFS also supports advanced volume management features such as snapshot(
HLFS can also support snapshot tree)、cloning、thin provisioning and cache.
The main idea of HLFS is:
Take advantage of Log-structured File System's ideology to build an on-line ima-
ge storage system on HDFS which can guarantee the reliability and scalability
for our storage system
The ideology of LFS makes our storage system support random access to online im-
ages.The ideology of LFS also makes our storage system more efficient and easily
take snapshot.
%prep
%setup -q
%build
cd ./build
cmake ../src
make
%install
cd build
make install DESTDIR=%{buildroot}
%files
%dir /usr/local/hlfs/bin
%dir /usr/local/hlfs/include
%dir /usr/local/hlfs/lib
%dir /usr/local/hlfs
/usr/local/hlfs/bin/clone.hlfs
/usr/local/hlfs/bin/log4crc
/usr/local/hlfs/bin/mkfs.hlfs
/usr/local/hlfs/bin/nbd_ops
/usr/local/hlfs/bin/rmfs.hlfs
/usr/local/hlfs/bin/segcalc.hlfs
/usr/local/hlfs/bin/segclean.hlfs
/usr/local/hlfs/bin/snapshot.hlfs
/usr/local/hlfs/bin/stat.hlfs
/usr/local/hlfs/bin/tapdisk_ops
/usr/local/hlfs/include/address.h
/usr/local/hlfs/include/api/hlfs.h
/usr/local/hlfs/include/base_ops.h
/usr/local/hlfs/include/bs_hdfs.h
/usr/local/hlfs/include/bs_local.h
/usr/local/hlfs/include/cache.h
/usr/local/hlfs/include/cache_helper.h
/usr/local/hlfs/include/clone.h
/usr/local/hlfs/include/cmd_define.h
/usr/local/hlfs/include/comm_define.h
/usr/local/hlfs/include/ctrl_region.h
/usr/local/hlfs/include/hlfs_ctrl.h
/usr/local/hlfs/include/hlfs_log.h
/usr/local/hlfs/include/icache.h
/usr/local/hlfs/include/logger.h
/usr/local/hlfs/include/misc.h
/usr/local/hlfs/include/seg_clean.h
/usr/local/hlfs/include/seg_clean_helper.h
/usr/local/hlfs/include/snapshot.h
/usr/local/hlfs/include/snapshot_helper.h
/usr/local/hlfs/include/storage.h
/usr/local/hlfs/include/storage_helper.h
/usr/local/hlfs/lib/libhlfs.so
%clean
rm -rf $RPM_BUILD_ROOT
%changelog
- First build.