Ice farming is the process of controllably and renewably generating ice, to gather it with a Silk Touch-enchanted tool. Ice naturally occurs in snowy and cold biomes, and ice farming relies on the freezing of water from an infinite water source.
An ice farm consists of a large flat pan, open to the sky in an icy biome, which contains an infinite water source. Two diagonally adjacent walls will have outgrowths protecting strategic water blocks from freezing, causing a fully mined-out farm to refill with fresh water source blocks. Using light sources to protect these blocks is not recommended, due to the melt/refreeze cycle this would cause. An ice farm's footprint is 3 layers deep, and however large you want the ice layer to be. The configuration for a 7x7 farm is shown below. (Note: If you want to make the farm larger than 7x7, make an X shape with the covered water sources.)
Take care not to allow trees or other obstacles to overhang the farm, and keep light sources at a distance, otherwise, some or all of the farm's area will not freeze.
To harvest, stand in the ice pan, and mine ice blocks with a Silk Touch tool, taking care to not mine the dirt. The covered water source blocks will then spread to refill the farm, and you simply wade around to collect the harvested ice. Boots enchanted with Depth Strider are useful for moving through the water faster.
Renew Packed Ice and Blue Ice Blocks
A large ice farm can double as a self-resetting spleef arena. Not using Silk Touch tools creates a variant where the broken blocks might reform during play. Using Silk Touch creates a more conventional game, and also harvests the ice. In this case, the arena will not reset properly until all the ice is mined, or perhaps melted with a grid of redstone lamps. A farm used for spleef should probably cover its water sources with an unbroken protective lip rather than alternating blocks, as they might snag players otherwise.
Other Harvesting Methods
Ice could theoretically be generated in the same way as cobblestone using two water source blocks, even to the extent that it could be piston-driven and used to build self-repairing structures. However, ice freezes slowly enough that an absurdly long clock cycle or a BUD (Block Update Detector), such as an observer, would be needed. Either way, it would serve as a very impractical toy. You can also make it high in the air to freeze the water.