Commit b53c9f56 authored by Vladimir Bashkirtsev's avatar Vladimir Bashkirtsev

Initial commit

parents
all: ceph-config
rm /etc/passwd
mv -v /data/etc/passwd /etc/passwd
rm /etc/group
mv -v /data/etc/group /etc/group
rm /etc/shadow
mv -v /data/etc/shadow /etc/shadow
rm /etc/gshadow
mv -v /data/etc/gshadow /etc/gshadow
groupadd -g 31 ceph
useradd -c "Ceph storage" -d /run/ceph -g ceph -s /bin/false -u 31 ceph
rm /etc/passwd-
rm /etc/group-
rm /etc/shadow-
rm /etc/gshadow-
mv -v /etc/passwd /data/etc/passwd
ln -sv /data/etc/passwd /etc/passwd
mv -v /etc/group /data/etc/group
ln -sv /data/etc/group /etc/group
mv -v /etc/shadow /data/etc/shadow
ln -sv /data/etc/shadow /etc/shadow
mv -v /etc/gshadow /data/etc/gshadow
ln -sv /data/etc/gshadow /etc/gshadow
dd if=/dev/zero of=swap bs=1048576 count=4096
chmod 600 swap
mkswap swap
swapon swap
mkdir tmp
mount --bind tmp /tmp
tar xf ceph-13.2.5.tar.gz
patch -Np1 -d ceph-13.2.5 < ceph-13.2.5-BlueStore_filter_out_fix.patch
patch -Np1 -d ceph-13.2.5 < ceph-13.2.5-PrimaryLogPG_calc_trim_to_fix.patch
patch -Np1 -d ceph-13.2.5 < ceph-13.2.5-OSDMonitor_update_pending_pgs_fix.patch
patch -Np1 -d ceph-13.2.5 < ceph-13.2.5-rgw_get_request_metadata_fix.patch
patch -Np1 -d ceph-13.2.5 < ceph-13.2.5-take_min_status_fix.patch
patch -Np1 -d ceph-13.2.5 < ceph-13.2.5-rgw_rest_swift_fix.patch
patch -Np1 -d ceph-13.2.5 < ceph-13.2.5-largest_singleton_fix.patch
patch -Np1 -d ceph-13.2.5 < ceph-13.2.5-scribble_fix.patch
patch -Np1 -d ceph-13.2.5 < ceph-13.2.5-unsupported_platform_fix.patch
cd ceph-13.2.5 && ./do_cmake.sh -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LIBEXECDIR=/lib -DWITH_SPDK=OFF
$(MAKE) -C ceph-13.2.5/build npm_config_cache=/build/.npm
hostname ceph
-cd ceph-13.2.5/build && make check
# cd ceph-13.2.5/build && ctest --output-on-failure
umount /tmp
rm -rf tmp
swapoff swap
rm -rf swap
$(MAKE) -C ceph-13.2.5/build install
mv -v /lib/ceph/* /usr/lib/ceph
rm -rf /lib/ceph
install -v -Dm755 -d /etc/sysconfig
install -v -Dm755 -d /etc/systemd/system/ceph-mon.target.wants
install -v -Dm755 -o ceph -g ceph -d /etc/ceph
install -v -Dm755 -o ceph -g ceph -d /var/lib/ceph/bootstrap-osd
install -v -Dm755 -o ceph -g ceph -d /var/lib/ceph/mds
install -v -Dm755 -o ceph -g ceph -d /var/lib/ceph/mgr
install -v -Dm755 -o ceph -g ceph -d /var/lib/ceph/mon
install -v -Dm755 -o ceph -g ceph -d /var/lib/ceph/osd
install -v -Dm755 ceph-mon-bootstrap /usr/sbin/ceph-mon-bootstrap
@echo "$$CEPH_CONFIG" >> /etc/config/ceph
install -v -Dm755 ceph /usr/share/easycwmp/functions
sed -e 's|^Environment=.*|ExecStartPre=/usr/sbin/ceph-mon-bootstrap|' -i /lib/systemd/system/ceph-mon@.service
systemctl enable ceph-mon.target
rm -rf ceph-13.2.5
ceph-config:
define CEPH_CONFIG
config ceph 'cluster'
option name ''
option fsid ''
config ceph 'mon'
option hostname ''
option address ''
option key ''
config ceph 'osd'
option bootstrapkey ''
config ceph 'client'
option admin ''
endef
export CEPH_CONFIG
#!/bin/sh
#common_execute_method_param "$parameter" "$permission" "$get_cmd" "$set_cmd" "xsd:$type" "$forcedinform"
# $forcedinform should be set to 1 if the parameter is included in the inform message otherwise empty
# Default of $type = string
#############################
# Entry point functuons #
#############################
prefix_list="$prefix_list $DMROOT.Ceph."
entry_execute_method_list="$entry_execute_method_list entry_execute_method_root_Ceph"
entry_execute_method_list_forcedinform="$entry_execute_method_list_forcedinform entry_execute_method_root_Ceph"
entry_execute_method_root_Ceph() {
case "$1" in ""|"$DMROOT."|"$DMROOT.Ceph."*)
common_execute_method_obj "$DMROOT.Ceph." "0"
common_execute_method_obj "$DMROOT.Ceph.Cluster." "0"
common_execute_method_param "$DMROOT.Ceph.Cluster.Name" "1" "ceph_get_cluster_name" "ceph_set_cluster_name"
common_execute_method_param "$DMROOT.Ceph.Cluster.FSID" "1" "ceph_get_cluster_fsid" "ceph_set_cluster_fsid"
common_execute_method_obj "$DMROOT.Ceph.Mon." "0"
common_execute_method_param "$DMROOT.Ceph.Mon.Hostname" "1" "ceph_get_mon_hostname" "ceph_set_mon_hostname"
common_execute_method_param "$DMROOT.Ceph.Mon.Address" "1" "ceph_get_mon_address" "ceph_set_mon_address"
common_execute_method_param "$DMROOT.Ceph.Mon.Key" "1" "ceph_get_mon_key" "ceph_set_mon_key"
common_execute_method_obj "$DMROOT.Ceph.OSD." "0"
common_execute_method_param "$DMROOT.Ceph.OSD.BootstrapKey" "1" "ceph_get_osd_bootstrapkey" "ceph_set_osd_bootstrapkey"
common_execute_method_obj "$DMROOT.Ceph.Client." "0"
common_execute_method_param "$DMROOT.Ceph.Client.Admin" "1" "ceph_get_client_admin" "ceph_set_client_admin"
return 0;
;;
esac
return $E_INVALID_PARAMETER_NAME;
}
#######################################
# Data model parameters functions #
#######################################
ceph_get_cluster_name() {
echo `$UCI_GET ceph.cluster.name`
}
ceph_set_cluster_name() {
local name=`$UCI_GET ceph.cluster.name`
if [ "$name" != "$1" ]; then
$UCI_SET ceph.cluster.name="$1"
$UCI_COMMIT
fi
}
ceph_get_cluster_fsid() {
echo `$UCI_GET ceph.cluster.fsid`
}
ceph_set_cluster_fsid() {
local fsid=`$UCI_GET ceph.cluster.fsid`
if [ "$fsid" != "$1" ]; then
$UCI_SET ceph.cluster.fsid="$1"
$UCI_COMMIT
fi
}
ceph_get_mon_hostname() {
echo `$UCI_GET ceph.mon.hostname`
}
ceph_set_mon_hostname() {
local hostname=`$UCI_GET ceph.mon.hostname`
if [ "$hostname" != "$1" ]; then
rm -f /etc/systemd/system/ceph-mon.target.wants/ceph-mon@$hostname.service
$UCI_SET ceph.mon.hostname="$1"
$UCI_COMMIT
systemctl enable ceph-mon@$1.service
fi
}
ceph_get_mon_address() {
echo `$UCI_GET ceph.mon.address`
}
ceph_set_mon_address() {
local address=`$UCI_GET ceph.mon.address`
if [ "$address" != "$1" ]; then
$UCI_SET ceph.mon.address="$1"
$UCI_COMMIT
fi
}
ceph_get_mon_key() {
echo `$UCI_GET ceph.mon.key`
}
ceph_set_mon_key() {
local key=`$UCI_GET ceph.mon.key`
if [ "$key" != "$1" ]; then
$UCI_SET ceph.mon.key="$1"
$UCI_COMMIT
fi
}
ceph_get_osd_bootstrapkey() {
echo `$UCI_GET ceph.osd.bootstrapkey`
}
ceph_set_osd_bootstrapkey() {
local bootstrapkey=`$UCI_GET ceph.osd.bootstrapkey`
if [ "$bootstrapkey" != "$1" ]; then
$UCI_SET ceph.osd.bootstrapkey="$1"
$UCI_COMMIT
fi
}
ceph_get_client_admin() {
echo `$UCI_GET ceph.client.admin`
}
ceph_set_client_admin() {
local admin=`$UCI_GET ceph.client.admin`
if [ "$admin" != "$1" ]; then
$UCI_SET ceph.client.admin="$1"
$UCI_COMMIT
fi
}
diff -uNr ceph-13.2.5/src/os/bluestore/BlueStore.cc ceph-13.2.5-BlueStore_filter_out_fix/src/os/bluestore/BlueStore.cc
--- ceph-13.2.5/src/os/bluestore/BlueStore.cc 2019-03-13 03:18:03.000000000 +1030
+++ ceph-13.2.5-BlueStore_filter_out_fix/src/os/bluestore/BlueStore.cc 2019-03-16 21:46:23.990137031 +1030
@@ -12567,8 +12567,8 @@
ceph_assert(!was_filtered_out);
ceph_assert(collections_bfs.size() == objects_bfs.size());
- size_t prev_pos = 0;
- size_t npos = collections_bfs.size();
+ uint64_t prev_pos = 0;
+ uint64_t npos = collections_bfs.size();
bloom_vector collections_reduced;
bloom_vector objects_reduced;
@@ -12577,8 +12577,8 @@
if (e.second == 0) {
continue;
}
- size_t pos = max(e.first / granularity, prev_pos);
- size_t end_pos = 1 + (e.first + e.second - 1) / granularity;
+ uint64_t pos = max(e.first / granularity, prev_pos);
+ uint64_t end_pos = 1 + (e.first + e.second - 1) / granularity;
while (pos != npos && pos < end_pos) {
ceph_assert( collections_bfs[pos].element_count() ==
objects_bfs[pos].element_count());
diff -uNr ceph-13.2.5/src/mon/OSDMonitor.cc ceph-13.2.5-OSDMonitor_update_pending_pgs_fix/src/mon/OSDMonitor.cc
--- ceph-13.2.5/src/mon/OSDMonitor.cc 2019-03-13 03:18:03.000000000 +1030
+++ ceph-13.2.5-OSDMonitor_update_pending_pgs_fix/src/mon/OSDMonitor.cc 2019-03-16 21:52:25.324180392 +1030
@@ -821,8 +821,8 @@
<< " modified " << p->second.modified
<< " [" << p->second.start << "-" << p->second.end << ")"
<< dendl;
- int n = std::min(max - pending_creatings.pgs.size(),
- p->second.end - p->second.start);
+ int64_t n = std::min<int64_t>(max - pending_creatings.pgs.size(),
+ p->second.end - p->second.start);
ps_t first = p->second.start;
ps_t end = first + n;
for (ps_t ps = first; ps < end; ++ps) {
diff -uNr ceph-13.2.5/src/osd/PrimaryLogPG.cc ceph-13.2.5-PrimaryLogPG_calc_trim_to_fix/src/osd/PrimaryLogPG.cc
--- ceph-13.2.5/src/osd/PrimaryLogPG.cc 2019-03-13 03:18:03.000000000 +1030
+++ ceph-13.2.5-PrimaryLogPG_calc_trim_to_fix/src/osd/PrimaryLogPG.cc 2019-03-16 21:57:52.076127146 +1030
@@ -1672,8 +1672,8 @@
pg_log.get_log().approx_size() > target) {
dout(10) << __func__ << " approx pg log length = "
<< pg_log.get_log().approx_size() << dendl;
- size_t num_to_trim = std::min(pg_log.get_log().approx_size() - target,
- cct->_conf->osd_pg_log_trim_max);
+ uint64_t num_to_trim = std::min<uint64_t>(pg_log.get_log().approx_size() - target,
+ cct->_conf->osd_pg_log_trim_max);
dout(10) << __func__ << " num_to_trim = " << num_to_trim << dendl;
if (num_to_trim < cct->_conf->osd_pg_log_trim_min &&
cct->_conf->osd_pg_log_trim_max >= cct->_conf->osd_pg_log_trim_min) {
diff -uNr ceph-13.2.5/src/common/ceph_context.h ceph-13.2.5-largest_singleton_fix/src/common/ceph_context.h
--- ceph-13.2.5/src/common/ceph_context.h 2019-03-13 03:18:03.000000000 +1030
+++ ceph-13.2.5-largest_singleton_fix/src/common/ceph_context.h 2019-03-16 22:02:49.693989490 +1030
@@ -144,7 +144,7 @@
void do_command(std::string_view command, const cmdmap_t& cmdmap,
std::string_view format, ceph::bufferlist *out);
- static constexpr std::size_t largest_singleton = sizeof(void*) * 72;
+ static constexpr std::size_t largest_singleton = 8 * 72;
template<typename T, typename... Args>
T& lookup_or_create_singleton_object(std::string_view name,
diff -uNr ceph-13.2.5/src/rgw/rgw_op.h ceph-13.2.5-rgw_get_request_metadata_fix/src/rgw/rgw_op.h
--- ceph-13.2.5/src/rgw/rgw_op.h 2019-03-13 03:18:03.000000000 +1030
+++ ceph-13.2.5-rgw_get_request_metadata_fix/src/rgw/rgw_op.h 2019-03-16 22:08:30.249976249 +1030
@@ -1977,7 +1977,7 @@
* as ObjectStore::get_max_attr_name_length() can set the limit even
* lower than the "osd_max_attr_name_len" configurable. */
const size_t max_attr_name_len = \
- cct->_conf->get_val<size_t>("rgw_max_attr_name_len");
+ cct->_conf->get_val<Option::size_t>("rgw_max_attr_name_len");
if (max_attr_name_len && attr_name.length() > max_attr_name_len) {
return -ENAMETOOLONG;
}
@@ -1993,7 +1993,7 @@
/* Swift allows administrators to limit the number of metadats items
* send _in a single request_. */
const auto rgw_max_attrs_num_in_req = \
- cct->_conf->get_val<size_t>("rgw_max_attrs_num_in_req");
+ cct->_conf->get_val<uint64_t>("rgw_max_attrs_num_in_req");
if (rgw_max_attrs_num_in_req &&
++valid_meta_count > rgw_max_attrs_num_in_req) {
return -E2BIG;
diff -uNr ceph-13.2.5/src/rgw/rgw_rest_swift.cc ceph-13.2.5-rgw_rest_swift_fix/src/rgw/rgw_rest_swift.cc
--- ceph-13.2.5/src/rgw/rgw_rest_swift.cc 2019-03-13 03:18:03.000000000 +1030
+++ ceph-13.2.5-rgw_rest_swift_fix/src/rgw/rgw_rest_swift.cc 2019-03-16 22:13:44.550886924 +1030
@@ -726,7 +726,7 @@
} else if (op_ret == -E2BIG) {
const auto error_message = boost::str(
boost::format("Too many metadata items; max %lld")
- % s->cct->_conf->get_val<size_t>("rgw_max_attrs_num_in_req"));
+ % s->cct->_conf->get_val<uint64_t>("rgw_max_attrs_num_in_req"));
set_req_state_err(s, EINVAL, error_message);
return -EINVAL;
}
@@ -1781,7 +1781,7 @@
formatter.dump_string("version", ceph_version);
const size_t max_attr_name_len = \
- g_conf->get_val<size_t>("rgw_max_attr_name_len");
+ g_conf->get_val<Option::size_t>("rgw_max_attr_name_len");
if (max_attr_name_len) {
const size_t meta_name_limit = \
max_attr_name_len - strlen(RGW_ATTR_PREFIX RGW_AMZ_META_PREFIX);
@@ -1794,7 +1794,7 @@
}
const size_t meta_num_limit = \
- g_conf->get_val<size_t>("rgw_max_attrs_num_in_req");
+ g_conf->get_val<uint64_t>("rgw_max_attrs_num_in_req");
if (meta_num_limit) {
formatter.dump_int("max_meta_count", meta_num_limit);
}
diff -uNr ceph-13.2.5/src/test/rbd_mirror/test_ImageSync.cc ceph-13.2.5-scribble_fix/src/test/rbd_mirror/test_ImageSync.cc
--- ceph-13.2.5/src/test/rbd_mirror/test_ImageSync.cc 2019-03-13 03:18:03.000000000 +1030
+++ ceph-13.2.5-scribble_fix/src/test/rbd_mirror/test_ImageSync.cc 2019-03-16 22:17:03.814464284 +1030
@@ -39,9 +39,9 @@
return ctx.wait();
}
-void scribble(librbd::ImageCtx *image_ctx, int num_ops, size_t max_size)
+void scribble(librbd::ImageCtx *image_ctx, int num_ops, uint64_t max_size)
{
- max_size = std::min(image_ctx->size, max_size);
+ max_size = std::min<uint64_t>(image_ctx->size, max_size);
for (int i=0; i<num_ops; i++) {
uint64_t off = rand() % (image_ctx->size - max_size + 1);
uint64_t len = 1 + rand() % max_size;
diff -uNr ceph-13.2.5/src/rgw/rgw_sync_log_trim.cc ceph-13.2.5-take_min_status_fix/src/rgw/rgw_sync_log_trim.cc
--- ceph-13.2.5/src/rgw/rgw_sync_log_trim.cc 2019-03-13 03:18:03.000000000 +1030
+++ ceph-13.2.5-take_min_status_fix/src/rgw/rgw_sync_log_trim.cc 2019-03-16 22:20:26.458051436 +1030
@@ -351,7 +351,7 @@
status->clear();
// The initialisation below is required to silence a false positive
// -Wmaybe-uninitialized warning
- boost::optional<size_t> num_shards = boost::make_optional(false, 0UL);
+ boost::optional<uint64_t> num_shards = boost::make_optional(false, uint64_t());
for (auto peer = first; peer != last; ++peer) {
const size_t peer_shards = peer->size();
if (!num_shards) {
diff -uNr ceph-13.2.5/src/ceph-detect-init/ceph_detect_init/__init__.py ceph-13.2.5-unsupported_platform_fix/src/ceph-detect-init/ceph_detect_init/__init__.py
--- ceph-13.2.5/src/ceph-detect-init/ceph_detect_init/__init__.py 2019-03-13 03:18:03.000000000 +1030
+++ ceph-13.2.5-unsupported_platform_fix/src/ceph-detect-init/ceph_detect_init/__init__.py 2019-03-18 17:51:12.515615965 +1030
@@ -78,6 +78,7 @@
'freebsd': freebsd,
'docker': docker,
'virtuozzo': centos,
+ 'ceph': docker,
}
if distro == 'redhat' and use_rhceph:
#!/bin/sh
CLUSTERNAME=`/sbin/uci -q get ceph.cluster.name`
FSID=`/sbin/uci -q get ceph.cluster.fsid`
HOSTNAME=`/sbin/uci -q get ceph.mon.hostname`
ADDRESS=`/sbin/uci -q get ceph.mon.address`
MON_KEY=`/sbin/uci -q get ceph.mon.key`
OSD_KEY=`/sbin/uci -q get ceph.osd.bootstrapkey`
ADMIN_KEY=`/sbin/uci -q get ceph.client.admin`
if [ -z "$CLUSTERNAME" ] || [ -z "$FSID" ] || [ -z "$HOSTNAME" ] || [ -z "$ADDRESS" ] || [ -z "$MON_KEY" ] || [ -z "$OSD_KEY" ] || [ -z "$ADMIN_KEY" ] ; then
exit 1
fi
if [ -f /etc/ceph/ceph.conf ] ; then
exit 0
fi
cat > /etc/ceph/ceph.conf <<- EOM
[global]
fsid = $FSID
mon initial members = $HOSTNAME
mon host = $ADDRESS
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
osd journal size = 1024
osd pool default size = 3
osd pool default min size = 2
osd pool default pg num = 128
osd pool default pgp num = 128
osd crush chooseleaf type = 1
EOM
chown ceph.ceph /etc/ceph/ceph.conf
cat > /tmp/ceph.mon.keyring <<- EOM
[mon.]
key = $MON_KEY
caps mon = "allow *"
EOM
chown ceph.ceph /tmp/ceph.mon.keyring
cat > /etc/ceph/ceph.client.admin.keyring <<- EOM
[client.admin]
key = $ADMIN_KEY
caps mds = "allow *"
caps mgr = "allow *"
caps mon = "allow *"
caps osd = "allow *"
EOM
chown ceph.ceph /etc/ceph/ceph.client.admin.keyring
cat > /var/lib/ceph/bootstrap-osd/ceph.keyring <<- EOM
[client.bootstrap-osd]
key = $OSD_KEY
caps mon = "profile bootstrap-osd"
EOM
chown ceph.ceph /var/lib/ceph/bootstrap-osd/ceph.keyring
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
monmaptool --create --add $HOSTNAME $ADDRESS --fsid $FSID /tmp/monmap
mkdir /var/lib/ceph/mon/$CLUSTERNAME-$HOSTNAME
ceph-mon --cluster $CLUSTERNAME --mkfs -i $HOSTNAME --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
chown -R ceph.ceph /var/lib/ceph/mon/$CLUSTERNAME-$HOSTNAME
echo "CLUSTER=$CLUSTERNAME" > /etc/sysconfig/ceph
bin
/usr/bin/.*
/usr/sbin/.*
/usr/share/ceph/.*
/usr/libexec/ceph/.*
/usr/libexec/systemd/.*
/usr/lib/ceph/ceph-monstore-update-crush\.sh
doc
/usr/share/doc/.*
man
/usr/share/man/.*
headers
/usr/include/.*
etc
/etc/.*
bytecode
/.*\.py[oc]
egg-info
/usr/lib/python2.*/.*\.egg-info/.*
/usr/lib/python2.*/EGG-INFO/.*
lib
/usr/lib/python2..*/.*\.(so|py|pth|egg)
/usr/lib/lib.*
/usr/lib/ceph/lib.*
/usr/lib/ceph/compressor/.*
/usr/lib/ceph/erasure-code/.*
/usr/lib/ceph/crypto/.*
/usr/lib/rados-classes/.*
mgr
/usr/lib/ceph/mgr/.*
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment