  In this paper, we study the notion of {\em codes with hierarchical locality}
that is identified as another approach to local recovery from multiple
erasures. The well-known class of {\em codes with locality} is said to possess
hierarchical locality with a single level. In a {\em code with two-level
hierarchical locality}, every symbol is protected by an inner-most local code,
and another middle-level code of larger dimension containing the local code. We
first consider codes with two levels of hierarchical locality, derive an upper
bound on the minimum distance, and provide optimal code constructions of low
field-size under certain parameter sets. Subsequently, we generalize both the
bound and the constructions to hierarchical locality of arbitrary levels.
