Creating shards dynamically and rebalancing primary shards

1.How to create shards dynamically?
Suppose we create index with 2 shards and 1 replica and index some
data into the shards.After that If we want to create two more shards
for the same index at run time, How to do it dynamically?

2.I created index with two shards and one replica.I have two nodes and
each node has one primary shard and replica of another node's primary
shard.If I make any one of node down,then this node's primary shard
is being allocated on the another node.Now if I make up the node which
I made down previously ,only replicas are creating.