District 21 of the Virginia Senate is a senatorial district made up of Roanoke and Blacksburg, along with Montgomery County and Giles County in the U.S. state of Virginia. This district is currently represented by John S. Edwards.