vmware / photon

Minimal Linux container host
https://vmware.github.io/photon
Other
3k stars 703 forks source link

package request: GlusterFS #693

Open riav opened 6 years ago

riav commented 6 years ago

You can install glusterfs by downloading tar.gz and compiling, but it would be much simpler if it were available in the tdnf repository.

zsebedits commented 6 years ago

@riav A tdnf package would be really helpful. Can you show me the steps needed to compile the glusterfs-client for Photon OS in the meantime?

patrick-werner commented 6 years ago

+1 for the package, can't get the cluster-client running in photon OS

riav commented 6 years ago

@zsebedits I'm sorry for the delay in answering.

curl -L'#' https://download.gluster.org/pub/gluster/glusterfs/3.11/3.11.3/glusterfs-3.11.3.tar.gz | tar -C /tmp -xzf -

Photon 1.x:

tdnf install lvm2 gawk make libgcc-devel libstdc++-devel util-linux linux-api-headers autoconf libgcc-devel linux-api-headers bison openssl-devel automake acl libacl-devel zlib zlib-devel python2-devel userspace-rcu libxml2-devel diffutils gcc glibc-devel binutils tar

Photon 2.x:

tdnf install lvm2 gawk make libgcc-devel libstdc++-devel util-linux linux-api-headers autoconf libgcc-devel linux-api-headers bison openssl-devel automake acl libacl-devel zlib-devel python2-devel libxml2-devel diffutils gcc glibc-devel binutils tar glibc-tools sqlite-devel userspace-rcu-devel python-xml

cd /tmp/glusterfs-3.11.3; ./autogen.sh; ./configure; make; make install ldconfig; ln -s /usr/local/sbin/gluster* /usr/bin/; ln -s /usr/local/etc/glusterfs/ /etc/; glusterd --version

echo -e "[Unit]\nDescription=GlusterFS initialization\nAfter=local-fs.target network-online.target network.target\nWants=local-fs.target network-online.target network.target\n\n[Service]\nExecStart=/usr/bin/glusterd --log-level INFO\nType=forking\n\n[Install]\nWantedBy=multi-user.target" > /lib/systemd/system/glusterfs.service

systemctl enable glusterfs systemctl start glusterfs

jnovack commented 6 years ago

Arg, who wants to (install 34 packages, build glusterfs, uninstall 34 packages, clean the build environment) on 15 machines??

༼ つ ◕◕ ༽つ SUMMON GLUSTERFS 4.0.1 RPM ༼ つ ◕◕ ༽つ


A number of things have changed with GlusterFS 4.0.1. New copy-pasta.

Photon v2.0 (OVA Version) + GlusterFS 4.0.1

tdnf install -y lvm2 make libgcc-devel libstdc++-devel linux-api-headers \
    autoconf libgcc-devel bison openssl-devel automake acl libacl-devel zlib-devel \
    python2-devel libxml2-devel diffutils gcc glibc-devel binutils tar glibc-tools \
    sqlite-devel userspace-rcu-devel python-xml rpcbind

curl -L'#' https://download.gluster.org/pub/gluster/glusterfs/4.0/4.0.1/glusterfs-4.0.1.tar.gz | tar -C /tmp -xzf -

cd /tmp/glusterfs-4.0.1

./autogen.sh && ./configure && make && make install && ldconfig

# BE VERY CAREFUL HERE. This is removing all unnecessary additional packages
#    that were installed from the BASE OVA IMAGE. If this copy-pasta was not
#    performed on a fresh install, you be causing damage to your environment
#    by removing a package that was intentionally installed earlier
#    (e.g. lvm2).  If you choose to skip this step, ensure you pay
#    attention to which packages were installed during the
#    'tdnf install -y' step earlier.  Unfortunately, 'tdnf' does not have an
#    'autoremove' function.  Please file a feature request.
tdnf erase -y autoconf automake binutils bison diffutils expat-devel \
    flex gcc glibc-devel glibc-tools libacl-devel libgcc-atomic libgcc-devel \
    libgomp libgomp-devel libstdc++-devel libxml2-devel linux-api-headers lvm2 \
    m4 make mpc openssl-devel perl python2-devel \
    sqlite sqlite-devel tar userspace-rcu-devel zlib-devel

cd / && rm -rf /tmp/glusterfs-4.0.1

ln -s /usr/local/sbin/gluster* /usr/sbin && ln -s /usr/local/etc/glusterfs/ /etc/
systemctl enable rpcbind && systemctl start rpcbind
systemctl enable glusterd 

If this is a new install, (e.g. you have not installed XFS) you'll need to tdnf install -y xfsprogs and follow the official guide to format and mount your bricks.

Additionally, you may need to sed -i "s/use_lvmetad = 1/use_lvmetad = 0/g" /etc/lvm/lvm.conf so LVM does not complain.

riav commented 5 years ago

Hi guys!!!

I tried to compile the rpm packages through the gluster documentation (https://docs.gluster.org/en/v3/Install-Guide/compiling-rpms/), but there are some dependencies in the official repository. Are they: libattr-devel is needed by glusterfs-4.1.1-0.7.git6e4ca3168.x86_64 libibverbs-devel is needed by glusterfs-4.1.1-0.7.git6e4ca3168.x86_64 librdmacm-devel> = 1.0.15 is needed by glusterfs-4.1.1-0.7.git6e4ca3168.x86_64 libuuid-devel is needed by glusterfs-4.1.1-0.7.git6e4ca3168.x86_64

I believe that having the depots in the repository, we could create the packages and have a local repository to easily install on all the photon servers.

YustasSwamp commented 5 years ago

Why not using glusterfs in container instead of native?

dwoz commented 2 weeks ago

Compiling the most recent gluster on Photonos 5.0.. +1 for an RPM from me. :)

tdnf install lvm2 gawk make libgcc-devel libstdc++-devel \
 util-linux linux-api-headers autoconf libgcc-devel linux-api-headers \
 bison openssl-devel automake acl libacl-devel zlib-devel \
 libxml2-devel diffutils gcc glibc-devel binutils tar glibc-tools \
 sqlite-devel userspace-rcu-devel gperftools-devel e2fsprogs-devel \
 util-linux-devel libtirpc-devel libtool liburing
wget https://download.gluster.org/pub/gluster/glusterfs/LATEST/glusterfs-11.1.tar.gz
tar xvf glusterfs-11.1.tar.gz
cd glusterfs-11.1
./autogen.sh
./configure --disable-linux-io_uring
make
make install
sshedi commented 2 weeks ago

This last info is slightly incorrect. There is no liburing in Photon 5.0

tdnf install -y --refresh build-essential tar wget rpcsvc-proto coreutils openssl-devel \
  util-linux-devel libacl-devel zlib-devel python3 libxml2-devel libtirpc-devel userspace-rcu-devel

And then:

wget <tarball link>
tar xf <tarball>
cd to extracted directory

And:

./autogen.sh
./configure --disable-linux-io_uring --without-tcmalloc
make -j8
make install

But as Alexey mentioned, using a gfs container would be nice and easy way to get started.

dwoz commented 2 weeks ago
./autogen.sh
./configure --disable-linux-io_uring --without-tcmalloc
make -j8
make install

You can remove the --without-tcmalloc flag to configure by including gperftools in the dependencies list.

tdnf install -y --refresh build-essential tar wget rpcsvc-proto coreutils openssl-devel   \
  util-linux-devel libacl-devel zlib-devel python3 libxml2-devel libtirpc-devel userspace-rcu-devel  \
  gperftools gperftools-devel