Bug 1576359 - only data bricks are created in arbiter:supported node
Summary: only data bricks are created in arbiter:supported node
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Gluster Storage
Classification: Red Hat
Component: heketi
Version: rhgs-3.3
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
: ---
Assignee: John Mulligan
QA Contact: Nitin Goyal
URL:
Whiteboard:
Depends On:
Blocks: 1568862
TreeView+ depends on / blocked
 
Reported: 2018-05-09 09:27 UTC by Nitin Goyal
Modified: 2018-05-15 20:05 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-05-15 20:05:43 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Nitin Goyal 2018-05-09 09:27:57 UTC
Description of problem: Only data bricks are created in arbiter:supported node. none of the arbiter brick is created in arbiter:supported node. It should create randomly, both data and arbiter brick can go in arbiter:supported node.

Version-Release number of selected component (if applicable): 6.0.0.11

Actual results: Only data bricks are created in arbiter:support node.

Expected results: It should create randomly both data and arbiter brick in arbiter:supported node.

Comment 2 Nitin Goyal 2018-05-09 09:38:06 UTC
This is scenario where it is failing

N1-d      N2-d      N3-r       N4-s
#100gb    #100gb    #100gb     #100gb
#100gb    #100gb    #100gb     #100gb
#100gb    #100gb    #100gb     #100gb

N stands for node
# stands for device
d stands for arbiter disabled
r stands for arbiter required
s stands for arbiter supported

Steps to reproduce:

1. Give disabled tags to first node and second node
# heketi-cli node settags node_id arbiter:disabled

2. Give required tag to third node
# heketi-cli node settags node_id arbiter:required

3. Give supported tag to fourth node
# heketi-cli node settags node_id arbiter:supported

4. Create volumes
# heketi-cli volume create --size=1  --gluster-volume-options='user.heketi.arbiter true'

5. Create 10 vols minimum

you will see that only data bricks are created in supported node

Comment 3 Nitin Goyal 2018-05-09 09:39:48 UTC
This is a second scenario where it is failing

N1-d      N2-d      N3-r       N4
#100gb    #100gb    #100gb     #100gb
#100gb    #100gb    #100gb     #100gb
#100gb    #100gb    #100gb     #100gb

N stands for node
# stands for device
d stands for arbiter disabled
r stands for arbiter required

Steps to reproduce:

1. Give disabled tags to first node and second node
# heketi-cli node settags node_id arbiter:disabled

2. Give required tag to third node
# heketi-cli node settags node_id arbiter:required

3. Create volumes
# heketi-cli volume create --size=1  --gluster-volume-options='user.heketi.arbiter true'

4. Create 10 vols minimum

you will see that only data bricks are created in fourth node where there is no tag.

Comment 4 John Mulligan 2018-05-15 17:10:39 UTC
Try creating more than one node with arbiter:supported. I think what's happening is that the data bricks are more likely to land on N4 (there's two of them per brick set). Once the algorithm has determined that a device on Node X is suitable no other bricks in that brick set should be placed on the node hosting that device (barring any bugs).

Comment 5 John Mulligan 2018-05-15 17:11:57 UTC
To clarify, I'm suggesting adding N5 and N6, etc not suggesting you change the configuration of N1 thru 3.

Comment 6 Michael Adam 2018-05-15 20:05:43 UTC
This a very special setup and a purely heuristic statement.
We don't give guarantees that a node will be used for arbiter
bricks if it has arbiter:supported (unless it is the only
node with arbiter:supported or arbiter:required).

The procedures are random. And probably the spread is not
yet as good as it could be, but by design, the only guarantees
we give are:

1. If a node has arbiter:disabled, it will NOT get arbiter bricks
2. If a node has arbiter:required, it will ONLY get arbiter bricks.

(and correspondingly for devices).

Closing this as notabug. Please re-open if we missed something.

(If you want to continue experimenting, please wait for the next build, and also try changing the setup as John suggested.)


Note You need to log in before you can comment on or make changes to this bug.