Petry's current contract, which carried a $5.5-million cap hit, was set to expire after next season. His new deal begins in 2021-22 and runs through the 2024-25 campaign.
The extension includes a 15-team no-trade clause and a full no-movement clause, reports TSN's Pierre LeBrun.
The 32-year-old is coming off his three most productive seasons. Petry tallied 11 goals and 40 points in 71 contests this past campaign. He also added two goals - including an overtime winner - and one assist in 10 playoff games.
Petry has blossomed into a stellar two-way defender as well.
Additionally, among NHL defensemen to play at least 500 minutes at five-on-five, Petry finished seventh with an expected goals for percentage of 56.48%, according to Natural Stat Trick.