In this paper we provide a detailed review of univariate and multivariate volatility analysis within the framework of high-frequency financial data setting. The field of volatility modeling and analysis for high-frequency financial data has experienced a rapid development over the past decade. High-frequency financial data pose tremendous challenges on volatility modeling and analysis, such as microstructure noise, non-synchronization, irregularly spaced times between observations, nonstationarity, and jumps. We present models for asset prices and high-frequency financial data. We discuss common volatility estimators such as realized volatility, two-time scale and multi-scale realized volatility estimators, realized kernel volatility estimator and pre-averaging volatility estimator in the univariate setting. For estimating co-volatility, we illustrate data synchronization methods including previous tick, refresh time, and generalized sampling time and present two-time scale and multi-scale realized volatility matrix estimators, realized kernel volatility estimator, and the quasi-maximum likelihood method built on the synchronized data. We also feature pre-averaging volatility and Hayashi-Yoshida estimators which are based on inexplicit data synchronization. We provide detailed formulation and properties for each estimator or method and point out their relationships and differences. Given the recent interests in big data and high-dimensional statistics, large volatility matrix inference approaches are highlighted in the end.