Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

osd/objectstore: change osd_objectstore default to bluestore #24642

Closed
wants to merge 3 commits into from

Conversation

vumrao
Copy link
Contributor

@vumrao vumrao commented Oct 17, 2018

osd/objectstore: change osd_objectstore default to bluestore
Fixes: http://tracker.ceph.com/issues/36494

Signed-off-by: Vikhyat Umrao vumrao@redhat.com

Copy link
Contributor

@tchaikov tchaikov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this breaks some tests inspecting the underlying files/directories of filestore for verifying its behavior. for instance, http://pulpito.ceph.com/kchai-2018-10-22_01:58:26-rados-wip-kefu-testing-2018-10-20-1204-distro-basic-smithi/3170191/

Copy link
Contributor

@tchaikov tchaikov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this breaks some tests inspecting the underlying files/directories of filestore for verifying its behavior. for instance, http://pulpito.ceph.com/kchai-2018-10-22_01:58:26-rados-wip-kefu-testing-2018-10-20-1204-distro-basic-smithi/3170191/

@vumrao
Copy link
Contributor Author

vumrao commented Oct 23, 2018

@tchaikov thank you.

  • We need to fix this test:
File - qa/standalone/mon/osd-pool-create.sh

function TEST_pool_create_rep_expected_num_objects() {
    local dir=$1
    setup $dir || return 1

    # disable pg dir merge
    export CEPH_ARGS
    run_mon $dir a || return 1
    run_mgr $dir x || return 1
    run_osd $dir 0 || return 1

    ceph osd pool create rep_expected_num_objects 64 64 replicated  replicated_rule 100000 || return 1
    # wait for pg dir creating
    sleep 30
    ceph pg ls
    find ${dir}/0/current -ls
    ret=$(find ${dir}/0/current/1.0_head/ | grep DIR | wc -l)
    if [ "$ret" -le 2 ];
    then
        return 1
    else
        echo "TEST_pool_create_rep_expected_num_objects PASS"
    fi
}
  • Because this is where it is failing:
2018-10-22T03:01:39.014 INFO:tasks.workunit.client.0.smithi142.stderr:/home/ubuntu/cephtest/clone.client.0/qa/standalone/mon/osd-pool-create.sh:225: TEST_pool_create_rep_expected_num_objects:  find td/osd-pool-create/0/current -ls
2018-10-22T03:01:39.016 INFO:tasks.workunit.client.0.smithi142.stderr:find: 'td/osd-pool-create/0/current': No such file or directory

2018-10-22T03:01:39.017 INFO:tasks.workunit.client.0.smithi142.stderr://home/ubuntu/cephtest/clone.client.0/qa/standalone/mon/osd-pool-create.sh:226: TEST_pool_create_rep_expected_num_objects:  find td/osd-pool-create/0/current/1.0_head/
2018-10-22T03:01:39.018 INFO:tasks.workunit.client.0.smithi142.stderr://home/ubuntu/cephtest/clone.client.0/qa/standalone/mon/osd-pool-create.sh:226: TEST_pool_create_rep_expected_num_objects:  grep DIR
2018-10-22T03:01:39.018 INFO:tasks.workunit.client.0.smithi142.stderr://home/ubuntu/cephtest/clone.client.0/qa/standalone/mon/osd-pool-create.sh:226: TEST_pool_create_rep_expected_num_objects:  wc -l
2018-10-22T03:01:39.019 INFO:tasks.workunit.client.0.smithi142.stderr:find: 'td/osd-pool-create/0/current/1.0_head/': No such file or directory

2018-10-22T03:01:39.021 INFO:tasks.workunit.client.0.smithi142.stderr:/home/ubuntu/cephtest/clone.client.0/qa/standalone/mon/osd-pool-create.sh:226: TEST_pool_create_rep_expected_num_objects:  ret=0
2018-10-22T03:01:39.022 INFO:tasks.workunit.client.0.smithi142.stderr:/home/ubuntu/cephtest/clone.client.0/qa/standalone/mon/osd-pool-create.sh:227: TEST_pool_create_rep_expected_num_objects:  '[' 0 -le 2 ']'

2018-10-22T03:01:39.022 INFO:tasks.workunit.client.0.smithi142.stderr:/home/ubuntu/cephtest/clone.client.0/qa/standalone/mon/osd-pool-create.sh:229: TEST_pool_create_rep_expected_num_objects:  return 1
  • I think we should be running this test only when the objectstore is filestore.

@liewegas
Copy link
Member

liewegas commented Oct 23, 2018 via email

@vumrao
Copy link
Contributor Author

vumrao commented Oct 23, 2018

Thank you @liewegas will make the changes.

@tchaikov
Copy link
Contributor

@vumrao there are more of them, could you fix following tests as well?

$ grep -w '"current"' qa -r 2>/dev/null
qa/btrfs/test_rmdir_async_snap.c:	strcpy(vold.name, "current");
qa/btrfs/test_rmdir_async_snap.c:	va.fd = open("current", O_RDONLY);
qa/tasks/mgr/test_insights.py:            if check not in report["health"]["current"]["checks"]:
qa/tasks/mgr/test_insights.py:            if "MGR_INSIGHTS_WARNING" in report["health"]["current"]["checks"]:
qa/standalone/special/ceph_objectstore_tool.py:    DIR = os.path.join(SUBDIR, "current")
qa/standalone/special/ceph_objectstore_tool.py:        SUBDIR = os.path.join(DIRL2, "current")
qa/standalone/special/ceph_objectstore_tool.py:        SUBDIR = os.path.join(DIRL2, "current")
qa/standalone/special/ceph_objectstore_tool.py:                    DIR = os.path.join(OSDDIR, os.path.join(osd, os.path.join("current", "{pg}_head".format(pg=pg))))
qa/standalone/special/ceph_objectstore_tool.py:                    DIR = os.path.join(OSDDIR, os.path.join(osd, os.path.join("current", "{pg}_head".format(pg=pg))))
qa/standalone/special/ceph_objectstore_tool.py:                    DIR = os.path.join(OSDDIR, os.path.join(osd, os.path.join("current", "{pg}_head".format(pg=pg))))
qa/standalone/special/ceph_objectstore_tool.py:                    DIR = os.path.join(OSDDIR, os.path.join(osd, os.path.join("current", "{pg}_head".format(pg=pg))))
qa/standalone/special/ceph_objectstore_tool.py:                    DIR = os.path.join(OSDDIR, os.path.join(osd, os.path.join("current", "{pg}_head".format(pg=pg))))

$ grep '/current' qa -r 2>/dev/null
qa/workunits/rados/test_alloc_hint.sh:        local fns=$(sudo sh -c "ls ${OSD_DATA[i]}/current/${PGID}*_head/${OBJ}_*")
qa/standalone/mon/osd-pool-create.sh:    find ${dir}/0/current -ls
qa/standalone/mon/osd-pool-create.sh:    ret=$(find ${dir}/0/current/1.0_head/ | grep DIR | wc -l)

@vumrao
Copy link
Contributor Author

vumrao commented Oct 24, 2018

Thank you, @tchaikov I have updated ceph_objectstore_tool and test_alloc_hint tests as they are related tofilestore. Looks like Mgr one is not related and btrfs one I am not sure please let me know if btrfs also needs to be updated.

The osd-pool-create one I had already covered in yesterday commit.

@smithfarm
Copy link
Contributor

@liewegas OK to backport this to mimic and luminous?

@liewegas
Copy link
Member

@smithfarm sure!

Copy link
Member

@jdurgin jdurgin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test updates look good, let's run this through a suite

@@ -51,6 +51,7 @@ function setup_pgid() {
}

function expect_alloc_hint_eq() {
export CEPH_ARGS="--osd-objectstore=filestore"
Copy link
Contributor

@tchaikov tchaikov Nov 29, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this does not change how osd is initialized. you will need to update theoverrides section in qa/suites/rados/objectstore/backends/alloc-hint.yaml to specify the objectstore type.

and you need to audit other places you set --osd-objectstore=filestore to make sure it can actually take effect before the OSD/cluster is created.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2018-11-29T02:58:03.956 INFO:tasks.workunit.client.0.smithi083.stderr:+ sudo ceph daemon osd.0 flush_journal
2018-11-29T02:58:04.143 INFO:tasks.workunit.client.0.smithi083.stderr:++ sudo sh -c 'ls /var/lib/ceph/osd/ceph-0/current/2.6*_head/foo_*'
2018-11-29T02:58:04.158 INFO:tasks.workunit.client.0.smithi083.stderr:ls: cannot access /var/lib/ceph/osd/ceph-0/current/2.6*_head/foo_*: No such file or directory

see http://pulpito.ceph.com/kchai-2018-11-29_01:22:06-rados-wip-kefu2-testing-2018-11-29-0053-distro-basic-smithi/3289928/

@tchaikov
Copy link
Contributor

tchaikov commented Nov 30, 2018

@vumrao could you also enlarge the size of OSD, see @ifed01 's analysis at http://tracker.ceph.com/issues/37452 ?

but i wonder why we haven't run into such an issue if filestore is used. does this imply that bluestore requires more device space compared to filestore? is this expected?

@ifed01
Copy link
Contributor

ifed01 commented Nov 30, 2018

@tchaikov - I think there is no explicit limit for filestore for these test cases - they simply are able to use all the available space as they run on top of regular file system.
Contrary bluestore has such a limit as it requires predefined (i.e. allocated) slow/DB/WAL volumes.

@tchaikov
Copy link
Contributor

@vumrao ping?

@vumrao
Copy link
Contributor Author

vumrao commented Dec 11, 2018

@tchaikov sorry for the delay I will take a look tomorrow.

for only osd_objectstore as filestore.

Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
@vumrao
Copy link
Contributor Author

vumrao commented Dec 13, 2018

@tchaikov I have tried to fix it hope this time it will go through :)

@vumrao
Copy link
Contributor Author

vumrao commented Jan 3, 2019

@tchaikov Hi Kefu - can you please add this one to your next test branch. Thank you.

@liewegas
Copy link
Member

see #25937 to address additional rados suite failures.

@liewegas
Copy link
Member

replaced by #25937

@liewegas liewegas closed this Jan 16, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
8 participants