Lines Matching defs:node
125 * Only get sidenames for this node since
127 * the local mddb for a multi-node diskset.
267 char *node = NULL;
276 node = mynode();
278 assert(node != NULL);
280 sideno = getnodeside(node, sd);
285 return (mddserror(ep, MDE_DS_HOSTNOSIDE, sp->setno, node, NULL, node));
304 * Returned record could be for a multi-node set or a
305 * non-multi-node set.
309 * Record is for a multi-node set. Reissue call
311 * record as if a non-multi-node set record since
354 * Record is for a multi-node set. Reissue call
356 * record as if a non-multi-node set record since
363 * Record is for a multi-node set. Reissue call
522 * Function that determines if a node is in the multinode diskset
523 * membership list. Calling node passes in node to be checked and
566 /* Return 1 if node is in member list */
638 * Get the information on the device from the remote node using the devid
739 * Need to pass the node the devid of the disk and get it to
772 * multi-node diskset also just return ie. copy.
1292 * since there can only be one owner node at a time.
1430 } else { /* Remove this host from the mediator node list. */
1436 /* Copy non local node */
1443 /* Clear local node */
1546 * the set (MD_MN_NODE_ALIVE) or the node on which
1548 * on the purging node because the delset call
1577 * the set on local node.
1622 * set the node to NULL to prevent further
1623 * requests to this unresponsive node.
1633 * the set on local node.
1676 * This is the node on which the purge is
1705 * Tell the remote node to remove this node
1713 * being "purged" from this node. The
1715 * node at a later time.
1728 * Tell the remote node to remove this node
1736 * being "purged" from this node. The
1738 * node at a later time.
1771 * node contacted (or rather failed to contact) for traditional
1772 * diskset. For a MN diskset, max_node is the node_id of the node
2097 /* If node isn't alive, can't own diskset */
2105 * this node as not an owner. That node may
2107 * that node can't do much.
2243 * Entry point to join a node to MultiNode diskset.
2249 * Assume valid configuration is stored in the set/drive/node records
2250 * in the local mddb since no node or drive can be added to the MNset
2257 * Set this node to active by notifying master if one exists.
2258 * If this is the first node active in the diskset, this node
2263 * If this node is the last node to join the set and clustering
2277 * - node not in the member list
2280 * - this node already joined to set
2319 /* Verify that the node is ALIVE (i.e. is in the API membership list) */
2399 * Call metaget_setownership that calls each node in diskset and
2400 * marks in set descriptor if node is an owner of the set or not.
2401 * metaget_setownership checks to see if a node is an owner by
2402 * checking to see if that node's kernel has the mddb loaded.
2403 * If a node had panic'd during a reconfig or an
2404 * add/delete/join/withdraw operation, the other nodes' node
2425 * master information from a node that is already joined
2426 * and set the master information for this node. Be sure
2427 * that this node (the already joined node) has its own
2429 * consistent and shouldn't allow a node to join. This diskset
2430 * inconsistency should only occur when a node has panic'd in
2432 * attempting to join a node into the set. This inconsistency
2434 * soon since a node panic'd.
2436 * If unable to get this information from an owning node, then
2438 * allow a node to join.
2441 /* get master information from an owner (joined) node */
2448 /* Verify that owner (joined) node has its own JOIN flag set */
2466 * this node snarfs the set.
2497 * Set the node flags in mynode's rpc.metad node records for
2500 * owner flags based on whether that node had snarfed
2503 * node's owner list except in the case where a node
2509 * set the node flags as given in the nodelist linked list.
2565 * loaded into the kernel even if a mediator node was
2566 * unavailable. This allows a node to join an MO
2568 * but a mediator node in unavailable.
2630 /* If first node to enter set, setup master and clear change log */
2639 * If first node to join set, then clear out change log
2642 * multiple owners. Since this node is the first owner
2645 * Only do this if we are in a single node non-SC3.x
2661 * Set this node's own flag on all joined nodes in the set
2662 * (including my node).
2685 * If rollback flag is 1, then node was joined to set.
2686 * Since an error occurred, withdraw node from set in
2699 * Ignore error since (next) first node to successfully join
2830 * If this node is the last to join the diskset and clustering isn't
2863 * node information.
2875 * caused the node to be withdrawn from the set and would
2887 * Entry point to withdraw a node from MultiNode diskset.
2891 * Assume valid configuration is stored in the set/drive/node records
2892 * in the local mddb since no node or drive can be added to the MNset
2900 * Only allow withdrawal of master node if master node is the only joined
2902 * Halt the diskset on this node.
2903 * Reset Master on this node.
2904 * Updated node flags that this node with withdrawn.
2911 * - node not in the member list
2914 * - this node not joined to set
3020 * Call metaget_setownership that calls each node in diskset and
3021 * marks in set descriptor if node is an owner of the set or not.
3022 * metaget_setownership checks to see if a node is an owner by
3023 * checking to see if that node's kernel has the mddb loaded.
3024 * If a node had panic'd during a reconfig or an
3025 * add/delete/join/withdraw operation, the other nodes' node
3035 * Verify that this node is joined
3045 * the only joined node.
3050 /* Skip my node since checking for other owners */
3055 /* If another owner node if found, error */
3122 /* Reset master on withdrawn node */
3129 /* Mark my node as withdrawn and send to other nodes */
3147 * If withdrawn node is a mirror owner, reset mirror owner
3150 * next node to grab mirror will resolve this issue.
3151 * Before next node grabs mirrors, metaset will show the withdrawn
3152 * node as owner which is why an attempt to reset the mirror owner
3165 "Unable to reset mirror owner on node %s"),
3174 /* Rejoin node - Mark node as joined and send to other nodes */
3190 /* Set master on withdrawn node */
3202 * loaded into the kernel even if a mediator node was
3203 * unavailable. This allows a node to join an MO
3205 * but a mediator node in unavailable.
3320 * node information.
3334 * A node not in the member list will be marked
3336 * A node in the member list will be marked ALIVE, but
3341 * node shouldn't be taking part in the reconfig cycle.
3345 * 1 - Any failure including RPC failure to my node.
3362 * node is in the member list.
3363 * If node is not a member, reset ALIVE and OWN node flag.
3364 * If node is a member, set ALIVE.
3365 * If mynode's OWN flag gets reset, then halt the diskset on this node.
3371 /* If node is in member list, set ALIVE */
3378 /* node is not in member list, mark !ALIVE and !OWN */
3380 /* If node is mynode, then halt set if needed */
3384 * in case... Any node not in the
3395 * Return failure since this node
3418 /* Return failure if can't send node flags to rpc.metad */
3429 * Each node determines the master on its own and
3438 * 205 - There was an RPC problem to another node.
3439 * -1 - There was an error. This could be an RPC error to my node.
3440 * This is a catastrophic failure causing node to panic.
3462 * Is current node joined to diskset?
3467 * If a node is joined to the diskset, this node checks
3474 * list and joined, then master is not changed on this node.
3483 /* If RPC failure to another node return 205 */
3512 * is no longer joined, then this node uses the following
3514 * - node calls RPC routine clnt_ownset to get latest
3516 * clnt_ownset checks on each node to see if its kernel
3521 /* Don't consider node that isn't in member list */
3529 /* If RPC failure to another node return 205 */
3541 * Set owner flag for each node based on whether
3542 * that node really has a diskset mddb snarfed in
3554 * - node walks through nodelist looking for nodes that are
3556 * - for each owner, node calls RPC routine clnt_getset to
3557 * see if that node has its node record set to OK.
3558 * - If so, master is chosen to be this owner node.
3562 /* Don't consider node that isn't in member list */
3568 /* Don't consider a node that isn't an owner */
3574 /* Does node has its own node record set to OK? */
3577 /* If RPC failure to another node return 205 */
3604 * - If no owner node has its own node record on its own node
3605 * set to OK, then this node checks all of the non-owner
3607 * - for each non-owner, node calls RPC routine clnt_getset to
3608 * see if that node has its node record set to OK.
3609 * - If set doesn't exist, don't choose node for master.
3610 * - If so, master is chosen to be this non-owner node.
3615 /* Don't consider node that isn't in member list */
3627 /* Does node has its own node record set to OK? */
3631 * If set doesn't exist on non-owner node,
3632 * don't consider this node for master.
3640 /* RPC failure to another node */
3664 * - If no node can be found that has its own node record on
3665 * its node to be set to OK, then all alive nodes
3667 * from set. Each alive node will remove all
3668 * information pertaining to this set from its node.
3677 * If node is not joined to diskset, then this
3678 * node uses the following algorithm:
3679 * - If unjoined node doesn't have a node record for itself,
3682 * - node needs to find master of diskset before
3684 * - node calls RPC routine clnt_ownset to get latest
3686 * clnt_ownset checks on each node to see if its
3691 * Is my node in the set description?
3692 * If not, delete the set from this node.
3693 * sr2setdesc sets sd_mn_mynode pointer to the node
3694 * descriptor for this node if there was a node
3695 * record for this node.
3704 /* Don't consider node that isn't in member list */
3712 /* If RPC failure to another node return 205 */
3724 * Set owner flag for each node based on whether
3725 * that node really has a diskset mddb snarfed in
3737 * - node walks through nodelist looking for nodes that
3740 * - for each owner, node calls RPC routine clnt_getset to
3741 * see if that node has a master set and to get the
3743 * - If the owner node has a set description that doesn't
3744 * include the non-joined node in the nodelist, this node
3747 * handling the case of when a node was removed from a
3750 * - If that node has a master set and the master is in the
3753 * node has already chosen a new master - either way,
3756 * - master is chosen to be owner node's master
3760 /* Don't consider node that isn't in member list */
3766 /* Don't consider a node that isn't an owner */
3772 /* Get owner node's set record */
3775 /* If RPC failure to another node return 205 */
3786 /* Is this node in the owner node's set record */
3796 /* my node not found - delete set */
3801 /* Is owner's node's master valid? */
3823 * - If no owner node has a valid master, then follow
3824 * algorithm of when a node is joined to the diskset.
3825 * - node walks through nodelist looking for nodes that are
3827 * - for each owner, node calls RPC routine clnt_getset to
3828 * see if that node has its node record set to OK.
3829 * - If so, master is chosen to be this owner node.
3833 /* Don't consider node that isn't in member list */
3839 /* Don't consider a node that isn't an owner */
3845 /* Does node has its own node record set to OK? */
3848 /* If RPC failure to another node return 205 */
3875 * - If no owner node has its own node record on its own node
3876 * set to OK, then this node checks all of the non-owner
3878 * - for each non-owner, node calls RPC routine clnt_getset to
3879 * see if that node has its node record set to OK.
3880 * - If set doesn't exist, don't choose node for master.
3881 * - If this node doesn't exist in the nodelist on any of the
3882 * non-owner nodes, this node removes its set description
3884 * mddbs). This is handling the case of when a node was
3887 * - If non-owner node has its node record set to OK and if
3888 * this node hasn't removed this diskset (step directly
3890 * non-owner node.
3894 /* Don't consider node that isn't in member list */
3909 * Don't need to get nodelist from my node since
3918 * If node has already been decided against for
3927 * Does node in my nodelist have its own node
3928 * record marked OK on its node? And does node
3930 * Don't want to choose a node for master unless
3931 * that node is marked OK on its own node and that
3932 * node exists on all other alive nodes.
3938 * any node to pick the deleted node as the master.
3943 * If set doesn't exist on non-owner node,
3944 * don't consider this node for master.
3951 /* RPC failure to another node */
3959 * Is my node in the nodelist gotten from the other
3960 * node? If not, then remove the set from my node
3961 * since set was deleted from my node while my node
3973 /* my node not found - delete set */
3978 /* Is node being checked marked OK on its own node? */
3990 * If node being checked doesn't exist on its
3991 * own node - don't choose it as master.
3998 * Check every node in my node's nodelist against
3999 * the nodelist gotten from the other node.
4000 * If a node in my node's nodelist is not found in the
4001 * other node's nodelist, then set the DEL flag.
4012 /* nd2 not found in other node's nodelist */
4024 * Rescan list look for node that has not been marked DEL.
4025 * First node found is the master.
4041 * - If no node can be found that has its own node record on
4042 * its node to be set to OK, then all alive nodes
4044 * from set. Each alive node will remove all
4045 * information pertaining to this set from its node.
4069 /* If this node is new master, set flag in this node's kernel */
4111 * Remove all set information from this node:
4112 * - node records for this set
4115 * (Only do this on this node since each node
4120 * (irregardless of whether an owner node or not) will
4124 * A node record with flag ADD denotes a set being
4125 * created. A node record with flag DEL denotes a
4130 /* Found a node that isn't alive */
4134 /* Is my node the lowest numbered ALIVE node? */
4151 * If this node had been joined, withdraw and reset master.
4153 * This could happen if a node was being added to or removed
4154 * from a diskset and the node doing the add/delete operation and
4173 * Remove side records for this node (side) from local mddb
4176 * Don't need to mark this node as DEL since already marked as
4177 * ADD or DEL (or this node would have been chosen as master).
4178 * Don't need to mark other node records, drive records or
4180 * these records will be deleted the next time this node
4190 * occurred when a node was partially added to a set.
4202 * Now, delete the set - this removes the node, drive
4226 * If this node is the lowest numbered nodeid then
4228 * this node is marked as ADD or DEL in the node record.
4245 * 1 - This node failed to reconfig.
4247 * or RPC failure to another node
4287 * If encountered an RPC error from my node,
4306 * If encountered an RPC error from my node,
4332 * If encountered an RPC error from my node,
4347 * to determine a master node. This can lead to a
4348 * problem where node 1 is trying to contact the rpc.metad
4349 * node 2 and node 2 is trying to contact the rpc.metad
4350 * on node 1 -- and this causes the rpc call to fail
4353 * In order to break this problem, a newly starting node
4398 * Each node turns on I/Os for all MN disksets.
4402 * If a failure occurs return a 1 which will force this node to
4403 * panic. Cannot leave node in the situation where I/Os are
4422 * each node's local set mddb.
4427 * node panic or to user intervention).
4429 * Caller is the Master node.
4432 * 205 - Failure during RPC to another node
4461 * Sync up node records first.
4463 * node's rpc.metad node records and then setting the state of each
4464 * node following these rules:
4465 * - If a node record is marked OK on its node, mark it OK
4467 * If a node record is also marked OWN on its node,
4469 * - If a node record is not marked OK on its node, then mark
4471 * - If node record doesn't exist on that node, then mark it DEL
4473 * - If set record doesn't exist on that node, mark node as DEL
4474 * - If a node record doesn't exist on all nodes, then mark it DEL
4475 * - If a node is not ALIVE, then
4476 * - If that node marked DEL on any node - mark it DEL
4478 * - If that node is marked as ADD on any node, mark it
4480 * - When that node returns to the living, the DEL
4481 * node record will be removed and the ADD node
4483 * node.
4484 * The key rule is to not remove a node from the nodelist until
4485 * that node record is removed from its own node. Do not want to
4486 * remove a node's record from all other nodes and then have
4487 * that node have its own record marked OK so that a node will pick
4491 * If node is ALIVE and node record is marked DEL in master nodelist,
4492 * remove node from set.
4493 * If node is ALIVE and node record is marked OK in master nodelist,
4495 * If node is not ALIVE and node record is marked DEL in master
4497 * If node is not ALIVE and node record is marked ADD in master,
4519 /* set doesn't exist, mark node as DEL */
4527 /* If RPC failure to another node return 205 */
4554 /* nr is the list of node recs from nd_nodename node */
4561 /* For each node record, is it in master list? */
4570 * Found node record not in master list -- add it
4571 * to list marking it as DEL since node record
4589 * Is this the node record for the node that
4591 * If so, check if node has its own node record
4598 * If node record is marked OK
4599 * on its own node, then mark it OK
4610 * on own node.
4617 /* Otherwise, mark node as DEL */
4624 * If node is not ALIVE and marked DEL
4625 * on any node, make it DEL in master list.
4626 * If node is not ALIVE and marked ADD
4627 * on any node, make it ADD in master list
4628 * unless node record has already been marked DEL.
4648 * If a node record doesn't exist on its own node,
4649 * then mark node as DEL.
4657 * If node is OK - put mnsr onto master_mnsr_node list for
4680 * myself) and each node will update itself. This will set the
4681 * ADD and DEL flags on each node as setup in the master nodelist.
4682 * Don't send nodelist to node where set doesn't exist.
4693 /* If RPC failure to another node return 205 */
4725 /* Skip non-alive nodes and node without set */
4732 /* If RPC failure to another node return 205 */
4757 * Delete this node rec from all ALIVE nodes in diskset.
4761 /* Skip non-alive nodes and node without set */
4768 /* This is a node being deleted from set */
4773 /* RPC failure to !my node */
4787 /* RPC failure to !my node */
4801 /* RPC failure to !my node */
4822 /* RPC failure to !my node */
4837 "Deleted node %s (%d) on node %s "
4856 /* Skip non-alive nodes and node without set */
4863 /* If RPC failure to another node return 205 */
4898 * If a node panic'd (or metaset command was killed) during the
4902 * from the list if the master node sees that the drive has been
4903 * marked in the ADD state on any node or is marked in the DEL state
4909 * new master node could be a node that wasn't in the cluster when
4910 * the node was deleted. This could lead to a situation where the
4911 * master node thinks that a drive is OK, but this drive isn't
4914 * where a node has the drive marked OK, but the node executing the
4916 * on the rest of the nodes. If the node with the OK drive then
4918 * and when the node with the OK drive rejoins the cluster, it will
4923 * B) At least one slave node knows about a drive that the master
4924 * node doesn't know about.
4927 * 1) Count number of drives known by this master node and the
4932 * 2) If a node has less drives listed than the master, the master
4933 * must get the drive descriptor list from that node so that
4935 * node. Master must get the drive descriptor list since the
4938 * node.
4943 * - Any drive not known by another node (from step2) will be
4947 * If any node has the drive record marked OK, mark it OK
4958 * 1) System has 4 nodes with node 1 as the master. Node 3 starts
4959 * to delete a drive record (drive record on node 1 is marked DEL),
4960 * but is stopped when node 3 panics. Node 1 also panics.
4961 * During reconfig cycle, node 2 is picked as master and the drive
4964 * Now, entire cluster is rebooted and node 1 rejoins the cluster.
4965 * Node 1 is picked as the master and node 1 has drive record
4967 * and since at least one node has the drive record marked OK,
4985 * Can't get drive list for this node, so
4986 * return -1 causing this node to be removed
5040 /* Does slave node have less drives than master? */
5045 /* RPC failure to !my node */
5055 "Master node %s unable to "
5056 "retrieve drive list from node %s"),
5120 * If drive on another node is marked OK, mark drive OK
5131 /* RPC failure to !my node */
5143 "Master node %s unable "
5145 "from node %s"), mynode(),
5153 /* Found drive (OK) from other node */
5172 * If no node had this drive marked OK, delete it.
5214 * Will also set genid on set and node records to have same
5225 /* RPC failure to another node */
5272 /* RPC failure to another node */
5285 /* Withdraw node from set if owner */
5288 /* RPC failure to another node */
5300 /* Mark all nodes as withdrawn on this node */
5303 /* RPC failure to another node */
5315 /* Resets master to no-master on this node */
5318 /* RPC failure to another node */
5332 /* RPC failure to another node */
5354 * yet another RPC timeout if a node has failed.
5395 * Calling node is guaranteed to be an owner node.
5396 * Calling node is the master node.
5398 * Master node verifies that ondisk mddb format matches its incore format.
5400 * If a node is joined to set, play the change log.
5404 * 205 - Failure during RPC to another node
5406 * -1 return will eventually cause node to panic
5441 * Is master node (which is this node) joined to set?
5442 * If master node isn't joined (which means that no nodes
5465 "Join of master node to STALE set %s"),
5475 * error message. Don't return failure or node
5477 * Also, withdraw node from set in order to
5481 "Join of master node in set %s failed"),
5489 * Master node successfully joined.
5498 "Flag update of master node join in set %s failed"),
5536 * changelog and don't sync master node to ondisk mddbs.
5554 * If this node is NOT a newly chosen master, then there's
5558 * A newly chosen master is a node that was not the master
5559 * at the beginning of the reconfig cycle. If a node is a new
5576 * This is needed in the case where a master node
5604 "Unable to suspend I/O on node %s in set %s"),
5614 /* Stop when reaching failed node */
5629 * If an RPC failure on another node, return a 205.
5665 "Unable to resume I/O on node %s in set %s"),
5671 * to endure. If RPC failure to another node, return
5672 * 205. If RPC failure to my node, return -1.
5689 * Start in middle of list with failing node.
5710 meta_mc_log(MC_LOG5, dgettext(TEXT_DOMAIN, "Master node has completed "
5761 * this node's new master kernel flag (for this set). If this node
5763 * reconfig cycle, this master node won't need to check if the ondisk
5764 * and incore mddbs are in sync since this node won't be considered
5767 * cycles as long as this node continues to be master.
5787 * A starting node is considered to be any node that is not
5789 * Master node is already joined to set (done in meta_mnsync_diskset_mddbs).
5791 * Caller is the Master node.
5794 * 205 - Failure during RPC to another node
5834 /* Ignore failure since master node may not be joined yet */
5850 /* Found a node that will be joined to diskset */
5866 * node, return 205; otherwise, return -1.
5879 "Unable to suspend I/O on node %s"
5889 /* Stop when reaching failed node */
5908 * RPC failure on another node, return
5929 * If a node is in the membership list but isn't joined
5930 * to the set, try to join the node.
5937 * If RPC failure to another node
5952 * and withdraw node from set in order to
5958 "WARNING: Unable to join node %s "
5993 "Unable to resume I/O on node %s"
6000 * to endure. If RPC failure to another node,
6001 * return 205. If RPC failure to my node,
6022 * Start in middle of list with failing node.
6054 * If 1 node fails - go ahead and update the rest except
6059 /* RPC failure to another node */